/* $Id: blast_seg.c 474016 2015-07-24 13:27:16Z ivanov $
 * ===========================================================================
 *
 *                            PUBLIC DOMAIN NOTICE                          
 *               National Center for Biotechnology Information
 *                                                                          
 *  This software/database is a "United States Government Work" under the   
 *  terms of the United States Copyright Act.  It was written as part of    
 *  the author's official duties as a United States Government employee and 
 *  thus cannot be copyrighted.  This software/database is freely available 
 *  to the public for use. The National Library of Medicine and the U.S.    
 *  Government have not placed any restriction on its use or reproduction.  
 *                                                                          
 *  Although all reasonable efforts have been taken to ensure the accuracy  
 *  and reliability of the software and data, the NLM and the U.S.          
 *  Government do not and cannot warrant the performance or results that    
 *  may be obtained by using this software or data. The NLM and the U.S.    
 *  Government disclaim all warranties, express or implied, including       
 *  warranties of performance, merchantability or fitness for any particular
 *  purpose.                                                                
 *                                                                          
 *  Please cite the author in any work or product based on this material.   
 *
 * ===========================================================================
 *
 * Author: Ilya Dondoshansky
 *
 */

/** @file blast_seg.c
 * A utility to find low complexity AA regions. This parallels functionality 
 * of seg.c from the C toolkit, but without using the structures generated 
 * from ASN.1 spec.
 * @todo FIXME needs comments
 */

#ifndef SKIP_DOXYGEN_PROCESSING
static char const rcsid[] = 
    "$Id: blast_seg.c 474016 2015-07-24 13:27:16Z ivanov $";
#endif /* SKIP_DOXYGEN_PROCESSING */

#include <algo/blast/core/blast_seg.h>
#include <algo/blast/core/ncbi_math.h>
#include <algo/blast/core/blast_filter.h>


/** Declared in blast_def.h. */
const int kSegWindow = 12;
const double kSegLocut = 2.2;
const double kSegHicut = 2.5;

/** Natural log of factorials: 0!, 1!, 2!, 3! */
double lnfact[] = 
  {
   0.000000, 0.000000, 0.693147, 1.791759, 3.178054, 4.787492, 6.579251, 8.525161, 
   10.604603, 12.801827, 15.104413, 17.502308, 19.987214, 22.552164, 25.191221, 27.899271, 
   30.671860, 33.505073, 36.395445, 39.339884, 42.335616, 45.380139, 48.471181, 51.606676, 
   54.784729, 58.003605, 61.261702, 64.557539, 67.889743, 71.257039, 74.658236, 78.092224, 
   81.557959, 85.054467, 88.580828, 92.136176, 95.719695, 99.330612, 102.968199, 106.631760, 
   110.320640, 114.034212, 117.771881, 121.533082, 125.317271, 129.123934, 132.952575, 136.802723, 
   140.673924, 144.565744, 148.477767, 152.409593, 156.360836, 160.331128, 164.320112, 168.327445, 
   172.352797, 176.395848, 180.456291, 184.533829, 188.628173, 192.739047, 196.866182, 201.009316, 
   205.168199, 209.342587, 213.532241, 217.736934, 221.956442, 226.190548, 230.439044, 234.701723, 
   238.978390, 243.268849, 247.572914, 251.890402, 256.221136, 260.564941, 264.921650, 269.291098, 
   273.673124, 278.067573, 282.474293, 286.893133, 291.323950, 295.766601, 300.220949, 304.686857, 
   309.164194, 313.652830, 318.152640, 322.663499, 327.185288, 331.717887, 336.261182, 340.815059, 
   345.379407, 349.954118, 354.539086, 359.134205, 363.739376, 368.354496, 372.979469, 377.614198, 
   382.258589, 386.912549, 391.575988, 396.248817, 400.930948, 405.622296, 410.322777, 415.032307, 
   419.750806, 424.478193, 429.214392, 433.959324, 438.712914, 443.475088, 448.245773, 453.024896, 
   457.812388, 462.608179, 467.412200, 472.224384, 477.044665, 481.872979, 486.709261, 491.553448, 
   496.405478, 501.265291, 506.132825, 511.008023, 515.890825, 520.781174, 525.679014, 530.584288, 
   535.496943, 540.416924, 545.344178, 550.278652, 555.220294, 560.169054, 565.124881, 570.087726, 
   575.057539, 580.034273, 585.017879, 590.008312, 595.005524, 600.009471, 605.020106, 610.037386, 
   615.061266, 620.091704, 625.128657, 630.172082, 635.221938, 640.278184, 645.340779, 650.409683, 
   655.484857, 660.566261, 665.653857, 670.747608, 675.847474, 680.953420, 686.065407, 691.183401, 
   696.307365, 701.437264, 706.573062, 711.714726, 716.862220, 722.015512, 727.174567, 732.339353, 
   737.509837, 742.685987, 747.867770, 753.055156, 758.248113, 763.446610, 768.650617, 773.860103, 
   779.075039, 784.295395, 789.521141, 794.752250, 799.988692, 805.230439, 810.477463, 815.729736, 
   820.987232, 826.249922, 831.517780, 836.790780, 842.068894, 847.352098, 852.640365, 857.933670, 
   863.231987, 868.535292, 873.843560, 879.156766, 884.474886, 889.797896, 895.125772, 900.458491, 
   905.796029, 911.138363, 916.485471, 921.837329, 927.193915, 932.555207, 937.921183, 943.291821, 
   948.667100, 954.046997, 959.431492, 964.820564, 970.214191, 975.612354, 981.015031, 986.422203, 
   991.833849, 997.249950, 1002.670485, 1008.095435, 1013.524780, 1018.958502, 1024.396582, 1029.838999, 
   1035.285737, 1040.736775, 1046.192096, 1051.651682, 1057.115514, 1062.583574, 1068.055844, 1073.532308, 
   1079.012947, 1084.497744, 1089.986681, 1095.479743, 1100.976911, 1106.478169, 1111.983501, 1117.492889, 
   1123.006318, 1128.523771, 1134.045232, 1139.570685, 1145.100114, 1150.633503, 1156.170838, 1161.712101, 
   1167.257279, 1172.806355, 1178.359314, 1183.916142, 1189.476824, 1195.041344, 1200.609689, 1206.181843, 
   1211.757792, 1217.337522, 1222.921018, 1228.508267, 1234.099254, 1239.693965, 1245.292387, 1250.894506, 
   1256.500308, 1262.109780, 1267.722908, 1273.339679, 1278.960080, 1284.584097, 1290.211718, 1295.842930, 
   1301.477720, 1307.116075, 1312.757982, 1318.403428, 1324.052403, 1329.704892, 1335.360884, 1341.020366, 
   1346.683326, 1352.349753, 1358.019634, 1363.692957, 1369.369711, 1375.049884, 1380.733463, 1386.420439, 
   1392.110798, 1397.804530, 1403.501624, 1409.202067, 1414.905850, 1420.612960, 1426.323387, 1432.037120, 
   1437.754148, 1443.474460, 1449.198045, 1454.924892, 1460.654992, 1466.388333, 1472.124906, 1477.864699, 
   1483.607702, 1489.353905, 1495.103298, 1500.855871, 1506.611613, 1512.370515, 1518.132566, 1523.897757, 
   1529.666078, 1535.437519, 1541.212071, 1546.989723, 1552.770467, 1558.554292, 1564.341189, 1570.131149, 
   1575.924163, 1581.720221, 1587.519313, 1593.321432, 1599.126567, 1604.934709, 1610.745850, 1616.559981, 
   1622.377092, 1628.197175, 1634.020221, 1639.846221, 1645.675166, 1651.507049, 1657.341860, 1663.179590, 
   1669.020232, 1674.863776, 1680.710215, 1686.559540, 1692.411742, 1698.266814, 1704.124747, 1709.985533, 
   1715.849165, 1721.715633, 1727.584930, 1733.457047, 1739.331978, 1745.209714, 1751.090247, 1756.973569, 
   1762.859673, 1768.748551, 1774.640196, 1780.534598, 1786.431752, 1792.331650, 1798.234283, 1804.139645, 
   1810.047728, 1815.958524, 1821.872027, 1827.788229, 1833.707123, 1839.628702, 1845.552957, 1851.479884, 
   1857.409473, 1863.341718, 1869.276612, 1875.214148, 1881.154319, 1887.097119, 1893.042539, 1898.990574, 
   1904.941217, 1910.894460, 1916.850298, 1922.808722, 1928.769728, 1934.733307, 1940.699454, 1946.668161, 
   1952.639423, 1958.613233, 1964.589584, 1970.568470, 1976.549884, 1982.533820, 1988.520272, 1994.509233, 
   2000.500698, 2006.494659, 2012.491111, 2018.490048, 2024.491463, 2030.495350, 2036.501703, 2042.510516, 
   2048.521784, 2054.535499, 2060.551656, 2066.570249, 2072.591272, 2078.614720, 2084.640586, 2090.668864, 
   2096.699550, 2102.732636, 2108.768117, 2114.805988, 2120.846243, 2126.888876, 2132.933881, 2138.981253, 
   2145.030987, 2151.083076, 2157.137515, 2163.194299, 2169.253423, 2175.314879, 2181.378665, 2187.444773, 
   2193.513198, 2199.583936, 2205.656981, 2211.732327, 2217.809969, 2223.889902, 2229.972121, 2236.056620, 
   2242.143395, 2248.232440, 2254.323750, 2260.417320, 2266.513144, 2272.611219, 2278.711537, 2284.814096, 
   2290.918889, 2297.025912, 2303.135160, 2309.246627, 2315.360309, 2321.476201, 2327.594299, 2333.714596, 
   2339.837089, 2345.961772, 2352.088641, 2358.217692, 2364.348918, 2370.482316, 2376.617881, 2382.755608, 
   2388.895493, 2395.037530, 2401.181716, 2407.328045, 2413.476513, 2419.627116, 2425.779849, 2431.934707, 
   2438.091686, 2444.250781, 2450.411988, 2456.575303, 2462.740721, 2468.908238, 2475.077848, 2481.249549, 
   2487.423335, 2493.599202, 2499.777146, 2505.957163, 2512.139248, 2518.323397, 2524.509606, 2530.697870, 
   2536.888185, 2543.080548, 2549.274953, 2555.471397, 2561.669876, 2567.870385, 2574.072920, 2580.277478, 
   2586.484054, 2592.692644, 2598.903244, 2605.115850, 2611.330458, 2617.547065, 2623.765665, 2629.986255, 
   2636.208831, 2642.433390, 2648.659926, 2654.888437, 2661.118919, 2667.351367, 2673.585777, 2679.822147, 
   2686.060472, 2692.300747, 2698.542971, 2704.787138, 2711.033244, 2717.281287, 2723.531263, 2729.783166, 
   2736.036995, 2742.292745, 2748.550413, 2754.809994, 2761.071486, 2767.334884, 2773.600185, 2779.867386, 
   2786.136482, 2792.407471, 2798.680348, 2804.955110, 2811.231753, 2817.510275, 2823.790671, 2830.072937, 
   2836.357071, 2842.643070, 2848.930928, 2855.220644, 2861.512213, 2867.805632, 2874.100898, 2880.398007, 
   2886.696957, 2892.997742, 2899.300361, 2905.604810, 2911.911085, 2918.219184, 2924.529102, 2930.840837, 
   2937.154385, 2943.469743, 2949.786908, 2956.105876, 2962.426644, 2968.749209, 2975.073568, 2981.399718, 
   2987.727655, 2994.057376, 3000.388877, 3006.722157, 3013.057211, 3019.394037, 3025.732631, 3032.072990, 
   3038.415112, 3044.758992, 3051.104629, 3057.452018, 3063.801157, 3070.152043, 3076.504672, 3082.859042, 
   3089.215150, 3095.572992, 3101.932566, 3108.293868, 3114.656896, 3121.021647, 3127.388118, 3133.756305, 
   3140.126206, 3146.497818, 3152.871137, 3159.246162, 3165.622889, 3172.001315, 3178.381438, 3184.763254, 
   3191.146760, 3197.531955, 3203.918834, 3210.307396, 3216.697636, 3223.089553, 3229.483144, 3235.878406, 
   3242.275335, 3248.673930, 3255.074188, 3261.476105, 3267.879679, 3274.284908, 3280.691788, 3287.100316, 
   3293.510491, 3299.922310, 3306.335768, 3312.750865, 3319.167598, 3325.585963, 3332.005958, 3338.427580, 
   3344.850827, 3351.275696, 3357.702184, 3364.130290, 3370.560009, 3376.991340, 3383.424280, 3389.858827, 
   3396.294977, 3402.732729, 3409.172079, 3415.613026, 3422.055566, 3428.499697, 3434.945417, 3441.392723, 
   3447.841612, 3454.292083, 3460.744132, 3467.197757, 3473.652955, 3480.109725, 3486.568063, 3493.027968, 
   3499.489436, 3505.952465, 3512.417053, 3518.883198, 3525.350897, 3531.820147, 3538.290947, 3544.763293, 
   3551.237184, 3557.712616, 3564.189589, 3570.668098, 3577.148143, 3583.629720, 3590.112827, 3596.597463, 
   3603.083624, 3609.571308, 3616.060512, 3622.551236, 3629.043476, 3635.537230, 3642.032495, 3648.529270, 
   3655.027552, 3661.527339, 3668.028629, 3674.531419, 3681.035707, 3687.541491, 3694.048769, 3700.557538, 
   3707.067797, 3713.579542, 3720.092772, 3726.607485, 3733.123678, 3739.641349, 3746.160496, 3752.681117, 
   3759.203210, 3765.726773, 3772.251802, 3778.778297, 3785.306255, 3791.835674, 3798.366551, 3804.898886, 
   3811.432675, 3817.967916, 3824.504607, 3831.042747, 3837.582333, 3844.123363, 3850.665835, 3857.209747, 
   3863.755097, 3870.301882, 3876.850101, 3883.399752, 3889.950832, 3896.503340, 3903.057274, 3909.612630, 
   3916.169409, 3922.727607, 3929.287222, 3935.848253, 3942.410697, 3948.974552, 3955.539817, 3962.106490, 
   3968.674567, 3975.244049, 3981.814932, 3988.387214, 3994.960895, 4001.535970, 4008.112440, 4014.690301, 
   4021.269553, 4027.850192, 4034.432217, 4041.015626, 4047.600417, 4054.186589, 4060.774139, 4067.363066, 
   4073.953367, 4080.545040, 4087.138085, 4093.732498, 4100.328279, 4106.925425, 4113.523934, 4120.123804, 
   4126.725034, 4133.327622, 4139.931566, 4146.536864, 4153.143514, 4159.751515, 4166.360864, 4172.971560, 
   4179.583601, 4186.196985, 4192.811711, 4199.427776, 4206.045179, 4212.663918, 4219.283991, 4225.905397, 
   4232.528133, 4239.152198, 4245.777591, 4252.404308, 4259.032350, 4265.661713, 4272.292396, 4278.924398, 
   4285.557717, 4292.192350, 4298.828297, 4305.465555, 4312.104122, 4318.743998, 4325.385180, 4332.027667, 
   4338.671457, 4345.316548, 4351.962938, 4358.610627, 4365.259611, 4371.909890, 4378.561462, 4385.214325, 
   4391.868478, 4398.523918, 4405.180645, 4411.838656, 4418.497950, 4425.158525, 4431.820380, 4438.483512, 
   4445.147921, 4451.813605, 4458.480562, 4465.148790, 4471.818288, 4478.489054, 4485.161087, 4491.834385, 
   4498.508947, 4505.184770, 4511.861853, 4518.540196, 4525.219795, 4531.900649, 4538.582758, 4545.266119, 
   4551.950731, 4558.636592, 4565.323700, 4572.012055, 4578.701654, 4585.392497, 4592.084580, 4598.777904, 
   4605.472466, 4612.168265, 4618.865299, 4625.563567, 4632.263068, 4638.963799, 4645.665759, 4652.368947, 
   4659.073361, 4665.779001, 4672.485863, 4679.193947, 4685.903251, 4692.613774, 4699.325515, 4706.038471, 
   4712.752642, 4719.468025, 4726.184620, 4732.902424, 4739.621438, 4746.341658, 4753.063083, 4759.785713, 
   4766.509546, 4773.234579, 4779.960813, 4786.688244, 4793.416873, 4800.146697, 4806.877715, 4813.609926, 
   4820.343328, 4827.077919, 4833.813700, 4840.550666, 4847.288819, 4854.028156, 4860.768675, 4867.510376, 
   4874.253256, 4880.997315, 4887.742552, 4894.488964, 4901.236550, 4907.985310, 4914.735241, 4921.486343, 
   4928.238613, 4934.992051, 4941.746655, 4948.502424, 4955.259356, 4962.017451, 4968.776706, 4975.537121, 
   4982.298694, 4989.061423, 4995.825308, 5002.590347, 5009.356539, 5016.123882, 5022.892375, 5029.662017, 
   5036.432806, 5043.204742, 5049.977822, 5056.752046, 5063.527412, 5070.303919, 5077.081566, 5083.860351, 
   5090.640273, 5097.421330, 5104.203522, 5110.986848, 5117.771305, 5124.556892, 5131.343609, 5138.131454, 
   5144.920426, 5151.710523, 5158.501745, 5165.294089, 5172.087555, 5178.882142, 5185.677848, 5192.474671, 
   5199.272612, 5206.071668, 5212.871838, 5219.673121, 5226.475515, 5233.279021, 5240.083635, 5246.889358, 
   5253.696187, 5260.504122, 5267.313161, 5274.123304, 5280.934548, 5287.746893, 5294.560338, 5301.374881, 
   5308.190521, 5315.007257, 5321.825087, 5328.644011, 5335.464028, 5342.285135, 5349.107333, 5355.930619, 
   5362.754992, 5369.580452, 5376.406998, 5383.234627, 5390.063339, 5396.893133, 5403.724007, 5410.555960, 
   5417.388992, 5424.223101, 5431.058286, 5437.894545, 5444.731878, 5451.570283, 5458.409759, 5465.250306, 
   5472.091921, 5478.934605, 5485.778355, 5492.623170, 5499.469050, 5506.315993, 5513.163998, 5520.013065, 
   5526.863191, 5533.714376, 5540.566618, 5547.419917, 5554.274272, 5561.129681, 5567.986143, 5574.843657, 
   5581.702222, 5588.561837, 5595.422500, 5602.284212, 5609.146970, 5616.010773, 5622.875621, 5629.741512, 
   5636.608445, 5643.476419, 5650.345434, 5657.215487, 5664.086579, 5670.958707, 5677.831871, 5684.706069, 
   5691.581301, 5698.457566, 5705.334862, 5712.213188, 5719.092544, 5725.972928, 5732.854339, 5739.736777, 
   5746.620240, 5753.504726, 5760.390236, 5767.276768, 5774.164320, 5781.052893, 5787.942484, 5794.833093, 
   5801.724719, 5808.617361, 5815.511017, 5822.405687, 5829.301370, 5836.198064, 5843.095769, 5849.994483, 
   5856.894207, 5863.794937, 5870.696674, 5877.599417, 5884.503164, 5891.407915, 5898.313668, 5905.220423, 
   5912.128178, 5919.036933, 5925.946687, 5932.857437, 5939.769185, 5946.681927, 5953.595665, 5960.510396, 
   5967.426119, 5974.342834, 5981.260540, 5988.179235, 5995.098919, 6002.019590, 6008.941249, 6015.863892, 
   6022.787521, 6029.712133, 6036.637729, 6043.564306, 6050.491864, 6057.420401, 6064.349918, 6071.280413, 
   6078.211885, 6085.144333, 6092.077756, 6099.012153, 6105.947523, 6112.883866, 6119.821180, 6126.759465, 
   6133.698719, 6140.638941, 6147.580131, 6154.522288, 6161.465410, 6168.409497, 6175.354548, 6182.300562, 
   6189.247538, 6196.195476, 6203.144373, 6210.094229, 6217.045044, 6223.996816, 6230.949545, 6237.903229, 
   6244.857868, 6251.813460, 6258.770006, 6265.727503, 6272.685952, 6279.645350, 6286.605698, 6293.566994, 
   6300.529237, 6307.492427, 6314.456563, 6321.421643, 6328.387668, 6335.354635, 6342.322544, 6349.291394, 
   6356.261185, 6363.231915, 6370.203584, 6377.176190, 6384.149733, 6391.124212, 6398.099626, 6405.075974, 
   6412.053255, 6419.031469, 6426.010614, 6432.990690, 6439.971696, 6446.953631, 6453.936493, 6460.920283, 
   6467.905000, 6474.890641, 6481.877208, 6488.864698, 6495.853111, 6502.842447, 6509.832703, 6516.823880, 
   6523.815976, 6530.808991, 6537.802924, 6544.797774, 6551.793541, 6558.790222, 6565.787818, 6572.786328, 
   6579.785750, 6586.786085, 6593.787330, 6600.789486, 6607.792552, 6614.796526, 6621.801408, 6628.807197, 
   6635.813892, 6642.821493, 6649.829998, 6656.839407, 6663.849719, 6670.860933, 6677.873048, 6684.886064, 
   6691.899979, 6698.914794, 6705.930506, 6712.947116, 6719.964622, 6726.983024, 6734.002320, 6741.022511, 
   6748.043595, 6755.065571, 6762.088439, 6769.112198, 6776.136847, 6783.162386, 6790.188813, 6797.216127, 
   6804.244328, 6811.273416, 6818.303389, 6825.334246, 6832.365988, 6839.398612, 6846.432118, 6853.466506, 
   6860.501775, 6867.537923, 6874.574951, 6881.612857, 6888.651641, 6895.691301, 6902.731837, 6909.773249, 
   6916.815535, 6923.858695, 6930.902728, 6937.947633, 6944.993410, 6952.040057, 6959.087574, 6966.135961, 
   6973.185215, 6980.235338, 6987.286327, 6994.338183, 7001.390904, 7008.444490, 7015.498939, 7022.554252, 
   7029.610428, 7036.667465, 7043.725362, 7050.784121, 7057.843738, 7064.904215, 7071.965549, 7079.027741, 
   7086.090789, 7093.154693, 7100.219452, 7107.285065, 7114.351532, 7121.418852, 7128.487024, 7135.556047, 
   7142.625922, 7149.696646, 7156.768219, 7163.840641, 7170.913911, 7177.988027, 7185.062991, 7192.138799, 
   7199.215453, 7206.292951, 7213.371293, 7220.450477, 7227.530504, 7234.611372, 7241.693080, 7248.775629, 
   7255.859017, 7262.943243, 7270.028307, 7277.114209, 7284.200947, 7291.288521, 7298.376929, 7305.466172, 
   7312.556249, 7319.647159, 7326.738901, 7333.831475, 7340.924880, 7348.019114, 7355.114179, 7362.210072, 
   7369.306793, 7376.404342, 7383.502718, 7390.601920, 7397.701947, 7404.802799, 7411.904475, 7419.006974, 
   7426.110296, 7433.214440, 7440.319406, 7447.425192, 7454.531798, 7461.639223, 7468.747468, 7475.856530, 
   7482.966409, 7490.077105, 7497.188617, 7504.300945, 7511.414087, 7518.528043, 7525.642812, 7532.758395, 
   7539.874789, 7546.991994, 7554.110010, 7561.228837, 7568.348472, 7575.468917, 7582.590169, 7589.712229, 
   7596.835096, 7603.958769, 7611.083247, 7618.208530, 7625.334617, 7632.461508, 7639.589202, 7646.717698, 
   7653.846995, 7660.977094, 7668.107992, 7675.239691, 7682.372189, 7689.505485, 7696.639578, 7703.774469, 
   7710.910156, 7718.046640, 7725.183918, 7732.321991, 7739.460858, 7746.600518, 7753.740971, 7760.882217, 
   7768.024253, 7775.167081, 7782.310698, 7789.455105, 7796.600301, 7803.746286, 7810.893058, 7818.040617, 
   7825.188963, 7832.338095, 7839.488012, 7846.638713, 7853.790199, 7860.942467, 7868.095519, 7875.249353, 
   7882.403968, 7889.559364, 7896.715541, 7903.872497, 7911.030233, 7918.188747, 7925.348039, 7932.508108, 
   7939.668954, 7946.830576, 7953.992973, 7961.156146, 7968.320093, 7975.484813, 7982.650306, 7989.816572, 
   7996.983610, 8004.151419, 8011.319999, 8018.489349, 8025.659469, 8032.830357, 8040.002014, 8047.174439, 
   8054.347631, 8061.521589, 8068.696313, 8075.871803, 8083.048057, 8090.225076, 8097.402859, 8104.581404, 
   8111.760712, 8118.940782, 8126.121613, 8133.303205, 8140.485557, 8147.668669, 8154.852540, 8162.037169, 
   8169.222556, 8176.408700, 8183.595601, 8190.783258, 8197.971671, 8205.160839, 8212.350761, 8219.541437, 
   8226.732866, 8233.925048, 8241.117983, 8248.311668, 8255.506105, 8262.701293, 8269.897230, 8277.093916, 
   8284.291352, 8291.489535, 8298.688466, 8305.888145, 8313.088570, 8320.289741, 8327.491657, 8334.694318, 
   8341.897724, 8349.101873, 8356.306765, 8363.512401, 8370.718778, 8377.925897, 8385.133757, 8392.342357, 
   8399.551697, 8406.761777, 8413.972595, 8421.184152, 8428.396447, 8435.609478, 8442.823246, 8450.037751, 
   8457.252991, 8464.468966, 8471.685675, 8478.903119, 8486.121296, 8493.340205, 8500.559847, 8507.780221, 
   8515.001326, 8522.223162, 8529.445728, 8536.669024, 8543.893049, 8551.117802, 8558.343284, 8565.569493, 
   8572.796429, 8580.024091, 8587.252480, 8594.481593, 8601.711432, 8608.941995, 8616.173282, 8623.405293, 
   8630.638026, 8637.871481, 8645.105658, 8652.340557, 8659.576176, 8666.812515, 8674.049574, 8681.287353, 
   8688.525849, 8695.765064, 8703.004997, 8710.245647, 8717.487013, 8724.729095, 8731.971893, 8739.215406, 
   8746.459634, 8753.704575, 8760.950230, 8768.196598, 8775.443679, 8782.691472, 8789.939976, 8797.189191, 
   8804.439116, 8811.689752, 8818.941097, 8826.193151, 8833.445913, 8840.699383, 8847.953561, 8855.208446, 
   8862.464037, 8869.720335, 8876.977337, 8884.235045, 8891.493457, 8898.752573, 8906.012393, 8913.272915, 
   8920.534141, 8927.796068, 8935.058696, 8942.322026, 8949.586056, 8956.850786, 8964.116216, 8971.382345, 
   8978.649172, 8985.916697, 8993.184920, 9000.453841, 9007.723457, 9014.993770, 9022.264779, 9029.536483, 
   9036.808881, 9044.081973, 9051.355760, 9058.630239, 9065.905412, 9073.181276, 9080.457833, 9087.735080, 
   9095.013019, 9102.291648, 9109.570967, 9116.850975, 9124.131672, 9131.413058, 9138.695132, 9145.977893, 
   9153.261341, 9160.545476, 9167.830297, 9175.115803, 9182.401995, 9189.688871, 9196.976432, 9204.264676, 
   9211.553604, 9218.843215, 9226.133507, 9233.424482, 9240.716138, 9248.008476, 9255.301493, 9262.595191, 
   9269.889568, 9277.184625, 9284.480360, 9291.776773, 9299.073864, 9306.371632, 9313.670077, 9320.969199, 
   9328.268996, 9335.569469, 9342.870617, 9350.172439, 9357.474936, 9364.778106, 9372.081949, 9379.386465, 
   9386.691653, 9393.997513, 9401.304045, 9408.611247, 9415.919120, 9423.227662, 9430.536875, 9437.846756, 
   9445.157306, 9452.468525, 9459.780411, 9467.092965, 9474.406185, 9481.720072, 9489.034625, 9496.349843, 
   9503.665726, 9510.982275, 9518.299487, 9525.617363, 9532.935903, 9540.255105, 9547.574970, 9554.895497, 
   9562.216686, 9569.538535, 9576.861046, 9584.184217, 9591.508047, 9598.832537, 9606.157686, 9613.483494, 
   9620.809959, 9628.137082, 9635.464863, 9642.793300, 9650.122394, 9657.452144, 9664.782549, 9672.113609, 
   9679.445324, 9686.777694, 9694.110717, 9701.444393, 9708.778722, 9716.113704, 9723.449338, 9730.785624, 
   9738.122561, 9745.460148, 9752.798387, 9760.137275, 9767.476812, 9774.816999, 9782.157835, 9789.499319, 
   9796.841450, 9804.184230, 9811.527656, 9818.871729, 9826.216448, 9833.561813, 9840.907823, 9848.254478, 
   9855.601778, 9862.949721, 9870.298309, 9877.647540, 9884.997414, 9892.347930, 9899.699088, 9907.050888, 
   9914.403329, 9921.756411, 9929.110133, 9936.464495, 9943.819497, 9951.175138, 9958.531418, 9965.888337, 
   9973.245893, 9980.604087, 9987.962917, 9995.322385, 10002.682489, 10010.043229, 10017.404604, 10024.766615, 
   10032.129260, 10039.492540, 10046.856453, 10054.221000, 10061.586180, 10068.951993, 10076.318438, 10083.685515, 
   10091.053224, 10098.421564, 10105.790534, 10113.160135, 10120.530366, 10127.901226, 10135.272715, 10142.644833, 
   10150.017579, 10157.390954, 10164.764956, 10172.139585, 10179.514840, 10186.890722, 10194.267231, 10201.644364, 
   10209.022123, 10216.400507, 10223.779515, 10231.159147, 10238.539403, 10245.920282, 10253.301784, 10260.683908, 
   10268.066655, 10275.450023, 10282.834012, 10290.218623, 10297.603854, 10304.989705, 10312.376176, 10319.763266, 
   10327.150975, 10334.539303, 10341.928249, 10349.317813, 10356.707994, 10364.098793, 10371.490208, 10378.882240, 
   10386.274887, 10393.668150, 10401.062029, 10408.456522, 10415.851629, 10423.247351, 10430.643686, 10438.040635, 
   10445.438196, 10452.836370, 10460.235157, 10467.634555, 10475.034564, 10482.435185, 10489.836416, 10497.238258, 
   10504.640709, 10512.043770, 10519.447441, 10526.851720, 10534.256607, 10541.662103, 10549.068206, 10556.474917, 
   10563.882235, 10571.290159, 10578.698690, 10586.107826, 10593.517568, 10600.927915, 10608.338867, 10615.750423, 
   10623.162584, 10630.575348, 10637.988715, 10645.402685, 10652.817258, 10660.232433, 10667.648210, 10675.064589, 
   10682.481568, 10689.899149, 10697.317330, 10704.736111, 10712.155491, 10719.575471, 10726.996050, 10734.417227, 
   10741.839003, 10749.261377, 10756.684348, 10764.107917, 10771.532082, 10778.956844, 10786.382202, 10793.808155, 
   10801.234704, 10808.661848, 10816.089587, 10823.517920, 10830.946848, 10838.376369, 10845.806483, 10853.237190, 
   10860.668489, 10868.100381, 10875.532865, 10882.965940, 10890.399607, 10897.833864, 10905.268712, 10912.704150, 
   10920.140178, 10927.576795, 10935.014002, 10942.451797, 10949.890180, 10957.329152, 10964.768711, 10972.208858, 
   10979.649592, 10987.090912, 10994.532819, 11001.975312, 11009.418390, 11016.862054, 11024.306302, 11031.751136, 
   11039.196553, 11046.642555, 11054.089140, 11061.536308, 11068.984059, 11076.432393, 11083.881309, 11091.330807, 
   11098.780887, 11106.231548, 11113.682789, 11121.134612, 11128.587014, 11136.039996, 11143.493558, 11150.947699, 
   11158.402419, 11165.857718, 11173.313594, 11180.770049, 11188.227081, 11195.684690, 11203.142876, 11210.601639, 
   11218.060978, 11225.520893, 11232.981383, 11240.442449, 11247.904089, 11255.366304, 11262.829093, 11270.292456, 
   11277.756393, 11285.220903, 11292.685985, 11300.151641, 11307.617868, 11315.084668, 11322.552039, 11330.019981, 
   11337.488494, 11344.957578, 11352.427232, 11359.897457, 11367.368250, 11374.839613, 11382.311546, 11389.784046, 
   11397.257115, 11404.730752, 11412.204957, 11419.679729, 11427.155069, 11434.630975, 11442.107447, 11449.584486, 
   11457.062090, 11464.540259, 11472.018994, 11479.498294, 11486.978158, 11494.458586, 11501.939579, 11509.421134, 
   11516.903253, 11524.385935, 11531.869179, 11539.352986, 11546.837355, 11554.322285, 11561.807777, 11569.293829, 
   11576.780443, 11584.267616, 11591.755350, 11599.243644, 11606.732496, 11614.221909, 11621.711879, 11629.202409, 
   11636.693496, 11644.185142, 11651.677345, 11659.170105, 11666.663423, 11674.157296, 11681.651727, 11689.146713, 
   11696.642255, 11704.138352, 11711.635005, 11719.132212, 11726.629974, 11734.128289, 11741.627159, 11749.126582, 
   11756.626559, 11764.127088, 11771.628171, 11779.129805, 11786.631991, 11794.134730, 11801.638019, 11809.141860, 
   11816.646252, 11824.151194, 11831.656686, 11839.162728, 11846.669320, 11854.176461, 11861.684151, 11869.192390, 
   11876.701177, 11884.210512, 11891.720395, 11899.230826, 11906.741804, 11914.253328, 11921.765400, 11929.278017, 
   11936.791181, 11944.304890, 11951.819145, 11959.333944, 11966.849289, 11974.365178, 11981.881611, 11989.398589, 
   11996.916109, 12004.434174, 12011.952781, 12019.471931, 12026.991623, 12034.511858, 12042.032634, 12049.553952, 
   12057.075811, 12064.598212, 12072.121152, 12079.644634, 12087.168655, 12094.693216, 12102.218317, 12109.743957, 
   12117.270136, 12124.796854, 12132.324110, 12139.851904, 12147.380235, 12154.909105, 12162.438511, 12169.968454, 
   12177.498934, 12185.029951, 12192.561503, 12200.093591, 12207.626215, 12215.159374, 12222.693067, 12230.227296, 
   12237.762058, 12245.297355, 12252.833186, 12260.369549, 12267.906447, 12275.443877, 12282.981839, 12290.520334, 
   12298.059361, 12305.598920, 12313.139010, 12320.679632, 12328.220784, 12335.762468, 12343.304681, 12350.847425, 
   12358.390698, 12365.934501, 12373.478833, 12381.023694, 12388.569084, 12396.115002, 12403.661448, 12411.208422, 
   12418.755924, 12426.303953, 12433.852509, 12441.401592, 12448.951201, 12456.501336, 12464.051997, 12471.603184, 
   12479.154896, 12486.707134, 12494.259896, 12501.813182, 12509.366993, 12516.921328, 12524.476187, 12532.031569, 
   12539.587474, 12547.143902, 12554.700852, 12562.258325, 12569.816320, 12577.374837, 12584.933875, 12592.493435, 
   12600.053515, 12607.614116, 12615.175238, 12622.736880, 12630.299041, 12637.861722, 12645.424923, 12652.988643, 
   12660.552881, 12668.117638, 12675.682913, 12683.248707, 12690.815018, 12698.381846, 12705.949192, 12713.517054, 
   12721.085434, 12728.654329, 12736.223741, 12743.793669, 12751.364112, 12758.935071, 12766.506544, 12774.078533, 
   12781.651036, 12789.224053, 12796.797584, 12804.371629, 12811.946188, 12819.521259, 12827.096844, 12834.672941, 
   12842.249551, 12849.826673, 12857.404307, 12864.982452, 12872.561109, 12880.140277, 12887.719956, 12895.300146, 
   12902.880845, 12910.462055, 12918.043775, 12925.626004, 12933.208742, 12940.791990, 12948.375746, 12955.960011, 
   12963.544784, 12971.130065, 12978.715854, 12986.302150, 12993.888954, 13001.476264, 13009.064082, 13016.652405, 
   13024.241235, 13031.830571, 13039.420413, 13047.010759, 13054.601612, 13062.192969, 13069.784830, 13077.377196, 
   13084.970067, 13092.563441, 13100.157319, 13107.751700, 13115.346584, 13122.941972, 13130.537862, 13138.134254, 
   13145.731148, 13153.328545, 13160.926443, 13168.524842, 13176.123742, 13183.723144, 13191.323046, 13198.923448, 
   13206.524351, 13214.125753, 13221.727655, 13229.330056, 13236.932957, 13244.536356, 13252.140254, 13259.744650, 
   13267.349545, 13274.954937, 13282.560827, 13290.167214, 13297.774099, 13305.381480, 13312.989359, 13320.597733, 
   13328.206604, 13335.815970, 13343.425832, 13351.036190, 13358.647043, 13366.258390, 13373.870233, 13381.482570, 
   13389.095401, 13396.708726, 13404.322544, 13411.936857, 13419.551662, 13427.166960, 13434.782751, 13442.399035, 
   13450.015811, 13457.633079, 13465.250838, 13472.869089, 13480.487832, 13488.107065, 13495.726789, 13503.347004, 
   13510.967709, 13518.588904, 13526.210589, 13533.832764, 13541.455428, 13549.078581, 13556.702223, 13564.326353, 
   13571.950972, 13579.576080, 13587.201675, 13594.827757, 13602.454328, 13610.081385, 13617.708929, 13625.336960, 
   13632.965478, 13640.594482, 13648.223972, 13655.853948, 13663.484409, 13671.115355, 13678.746787, 13686.378704, 
   13694.011105, 13701.643990, 13709.277360, 13716.911213, 13724.545551, 13732.180371, 13739.815675, 13747.451462, 
   13755.087732, 13762.724484, 13770.361718, 13777.999435, 13785.637633, 13793.276313, 13800.915474, 13808.555116, 
   13816.195239, 13823.835843, 13831.476927, 13839.118492, 13846.760536, 13854.403060, 13862.046064, 13869.689547, 
   13877.333509, 13884.977950, 13892.622869, 13900.268267, 13907.914143, 13915.560496, 13923.207328, 13930.854637, 
   13938.502423, 13946.150686, 13953.799425, 13961.448642, 13969.098334, 13976.748503, 13984.399148, 13992.050268, 
   13999.701863, 14007.353934, 14015.006480, 14022.659500, 14030.312995, 14037.966964, 14045.621407, 14053.276325, 
   14060.931715, 14068.587579, 14076.243916, 14083.900726, 14091.558009, 14099.215765, 14106.873992, 14114.532692, 
   14122.191863, 14129.851506, 14137.511620, 14145.172206, 14152.833262, 14160.494789, 14168.156787, 14175.819255, 
   14183.482192, 14191.145600, 14198.809477, 14206.473824, 14214.138640, 14221.803924, 14229.469678, 14237.135900, 
   14244.802590, 14252.469748, 14260.137374, 14267.805468, 14275.474029, 14283.143057, 14290.812553, 14298.482515, 
   14306.152943, 14313.823838, 14321.495199, 14329.167026, 14336.839318, 14344.512076, 14352.185299, 14359.858987, 
   14367.533140, 14375.207758, 14382.882840, 14390.558386, 14398.234396, 14405.910869, 14413.587806, 14421.265207, 
   14428.943070, 14436.621397, 14444.300186, 14451.979437, 14459.659151, 14467.339326, 14475.019964, 14482.701063, 
   14490.382623, 14498.064645, 14505.747127, 14513.430070, 14521.113474, 14528.797338, 14536.481662, 14544.166446, 
   14551.851690, 14559.537393, 14567.223555, 14574.910176, 14582.597256, 14590.284795, 14597.972792, 14605.661248, 
   14613.350161, 14621.039532, 14628.729361, 14636.419647, 14644.110390, 14651.801590, 14659.493247, 14667.185360, 
   14674.877930, 14682.570956, 14690.264437, 14697.958375, 14705.652767, 14713.347616, 14721.042919, 14728.738677, 
   14736.434889, 14744.131556, 14751.828678, 14759.526253, 14767.224282, 14774.922765, 14782.621701, 14790.321091, 
   14798.020933, 14805.721228, 14813.421976, 14821.123176, 14828.824829, 14836.526933, 14844.229489, 14851.932497, 
   14859.635956, 14867.339866, 14875.044227, 14882.749039, 14890.454302, 14898.160014, 14905.866177, 14913.572790, 
   14921.279853, 14928.987365, 14936.695327, 14944.403737, 14952.112597, 14959.821905, 14967.531662, 14975.241867, 
   14982.952521, 14990.663622, 14998.375171, 15006.087167, 15013.799611, 15021.512502, 15029.225840, 15036.939625, 
   15044.653856, 15052.368533, 15060.083657, 15067.799226, 15075.515242, 15083.231702, 15090.948609, 15098.665960, 
   15106.383756, 15114.101997, 15121.820683, 15129.539812, 15137.259386, 15144.979404, 15152.699866, 15160.420771, 
   15168.142120, 15175.863912, 15183.586146, 15191.308824, 15199.031944, 15206.755506, 15214.479511, 15222.203958, 
   15229.928846, 15237.654176, 15245.379948, 15253.106160, 15260.832814, 15268.559908, 15276.287444, 15284.015419, 
   15291.743835, 15299.472691, 15307.201986, 15314.931722, 15322.661897, 15330.392511, 15338.123564, 15345.855056, 
   15353.586986, 15361.319356, 15369.052163, 15376.785409, 15384.519092, 15392.253214, 15399.987773, 15407.722769, 
   15415.458202, 15423.194072, 15430.930380, 15438.667123, 15446.404303, 15454.141920, 15461.879972, 15469.618460, 
   15477.357384, 15485.096743, 15492.836537, 15500.576767, 15508.317431, 15516.058530, 15523.800064, 15531.542032, 
   15539.284434, 15547.027270, 15554.770540, 15562.514243, 15570.258380, 15578.002949, 15585.747952, 15593.493388, 
   15601.239256, 15608.985557, 15616.732290, 15624.479455, 15632.227051, 15639.975080, 15647.723540, 15655.472431, 
   15663.221754, 15670.971507, 15678.721691, 15686.472306, 15694.223351, 15701.974826, 15709.726732, 15717.479067, 
   15725.231832, 15732.985026, 15740.738650, 15748.492702, 15756.247184, 15764.002094, 15771.757433, 15779.513200, 
   15787.269395, 15795.026019, 15802.783070, 15810.540549, 15818.298455, 15826.056788, 15833.815549, 15841.574736, 
   15849.334350, 15857.094391, 15864.854858, 15872.615751, 15880.377070, 15888.138815, 15895.900986, 15903.663582, 
   15911.426603, 15919.190050, 15926.953921, 15934.718217, 15942.482938, 15950.248083, 15958.013652, 15965.779645, 
   15973.546062, 15981.312902, 15989.080166, 15996.847853, 16004.615964, 16012.384497, 16020.153453, 16027.922832, 
   16035.692633, 16043.462856, 16051.233501, 16059.004568, 16066.776057, 16074.547967, 16082.320299, 16090.093052, 
   16097.866225, 16105.639820, 16113.413835, 16121.188270, 16128.963126, 16136.738402, 16144.514098, 16152.290213, 
   16160.066748, 16167.843703, 16175.621076, 16183.398869, 16191.177080, 16198.955710, 16206.734759, 16214.514226, 
   16222.294111, 16230.074414, 16237.855135, 16245.636274, 16253.417830, 16261.199803, 16268.982193, 16276.765000, 
   16284.548224, 16292.331865, 16300.115922, 16307.900395, 16315.685285, 16323.470590, 16331.256311, 16339.042447, 
   16346.828999, 16354.615966, 16362.403348, 16370.191145, 16377.979356, 16385.767982, 16393.557023, 16401.346477, 
   16409.136346, 16416.926628, 16424.717324, 16432.508434, 16440.299957, 16448.091893, 16455.884242, 16463.677003, 
   16471.470178, 16479.263764, 16487.057764, 16494.852175, 16502.646998, 16510.442233, 16518.237879, 16526.033937, 
   16533.830407, 16541.627287, 16549.424578, 16557.222280, 16565.020393, 16572.818916, 16580.617849, 16588.417193, 
   16596.216946, 16604.017109, 16611.817682, 16619.618664, 16627.420055, 16635.221855, 16643.024065, 16650.826683, 
   16658.629710, 16666.433145, 16674.236988, 16682.041239, 16689.845899, 16697.650966, 16705.456440, 16713.262322, 
   16721.068612, 16728.875308, 16736.682411, 16744.489921, 16752.297838, 16760.106161, 16767.914890, 16775.724026, 
   16783.533567, 16791.343514, 16799.153867, 16806.964625, 16814.775788, 16822.587357, 16830.399330, 16838.211708, 
   16846.024491, 16853.837678, 16861.651270, 16869.465266, 16877.279665, 16885.094469, 16892.909676, 16900.725286, 
   16908.541300, 16916.357717, 16924.174537, 16931.991760, 16939.809385, 16947.627413, 16955.445844, 16963.264676, 
   16971.083910, 16978.903547, 16986.723585, 16994.544024, 17002.364865, 17010.186107, 17018.007750, 17025.829794, 
   17033.652239, 17041.475084, 17049.298330, 17057.121976, 17064.946022, 17072.770468, 17080.595314, 17088.420559, 
   17096.246204, 17104.072248, 17111.898691, 17119.725533, 17127.552774, 17135.380413, 17143.208451, 17151.036888, 
   17158.865722, 17166.694955, 17174.524585, 17182.354613, 17190.185039, 17198.015862, 17205.847082, 17213.678699, 
   17221.510714, 17229.343124, 17237.175932, 17245.009136, 17252.842736, 17260.676733, 17268.511125, 17276.345913, 
   17284.181097, 17292.016676, 17299.852651, 17307.689020, 17315.525785, 17323.362945, 17331.200499, 17339.038448, 
   17346.876791, 17354.715529, 17362.554661, 17370.394186, 17378.234105, 17386.074418, 17393.915125, 17401.756225, 
   17409.597718, 17417.439604, 17425.281882, 17433.124554, 17440.967618, 17448.811074, 17456.654923, 17464.499164, 
   17472.343796, 17480.188821, 17488.034237, 17495.880044, 17503.726243, 17511.572833, 17519.419814, 17527.267186, 
   17535.114948, 17542.963101, 17550.811645, 17558.660579, 17566.509902, 17574.359616, 17582.209720, 17590.060213, 
   17597.911096, 17605.762368, 17613.614029, 17621.466079, 17629.318518, 17637.171346, 17645.024562, 17652.878167, 
   17660.732160, 17668.586541, 17676.441311, 17684.296468, 17692.152012, 17700.007944, 17707.864264, 17715.720971, 
   17723.578065, 17731.435545, 17739.293413, 17747.151667, 17755.010308, 17762.869335, 17770.728748, 17778.588547, 
   17786.448732, 17794.309303, 17802.170259, 17810.031601, 17817.893328, 17825.755440, 17833.617938, 17841.480820, 
   17849.344086, 17857.207738, 17865.071773, 17872.936193, 17880.800997, 17888.666185, 17896.531757, 17904.397712, 
   17912.264051, 17920.130774, 17927.997879, 17935.865368, 17943.733239, 17951.601493, 17959.470130, 17967.339150, 
   17975.208551, 17983.078335, 17990.948501, 17998.819049, 18006.689979, 18014.561290, 18022.432983, 18030.305056, 
   18038.177512, 18046.050348, 18053.923565, 18061.797163, 18069.671141, 18077.545500, 18085.420239, 18093.295358, 
   18101.170858, 18109.046737, 18116.922996, 18124.799634, 18132.676652, 18140.554049, 18148.431825, 18156.309981, 
   18164.188515, 18172.067428, 18179.946719, 18187.826389, 18195.706438, 18203.586864, 18211.467668, 18219.348850, 
   18227.230410, 18235.112348, 18242.994663, 18250.877355, 18258.760424, 18266.643871, 18274.527694, 18282.411894, 
   18290.296470, 18298.181423, 18306.066752, 18313.952458, 18321.838539, 18329.724997, 18337.611830, 18345.499038, 
   18353.386622, 18361.274582, 18369.162916, 18377.051626, 18384.940710, 18392.830169, 18400.720003, 18408.610211, 
   18416.500794, 18424.391750, 18432.283081, 18440.174786, 18448.066864, 18455.959316, 18463.852142, 18471.745341, 
   18479.638913, 18487.532858, 18495.427176, 18503.321867, 18511.216930, 18519.112366, 18527.008175, 18534.904355, 
   18542.800908, 18550.697833, 18558.595129, 18566.492797, 18574.390837, 18582.289248, 18590.188030, 18598.087184, 
   18605.986708, 18613.886604, 18621.786870, 18629.687506, 18637.588513, 18645.489891, 18653.391638, 18661.293756, 
   18669.196243, 18677.099100, 18685.002327, 18692.905923, 18700.809889, 18708.714224, 18716.618928, 18724.524001, 
   18732.429442, 18740.335253, 18748.241431, 18756.147979, 18764.054894, 18771.962178, 18779.869829, 18787.777849, 
   18795.686236, 18803.594991, 18811.504113, 18819.413602, 18827.323459, 18835.233683, 18843.144273, 18851.055231, 
   18858.966555, 18866.878245, 18874.790302, 18882.702725, 18890.615515, 18898.528670, 18906.442191, 18914.356077, 
   18922.270330, 18930.184947, 18938.099930, 18946.015279, 18953.930992, 18961.847070, 18969.763513, 18977.680320, 
   18985.597492, 18993.515029, 19001.432929, 19009.351194, 19017.269823, 19025.188815, 19033.108171, 19041.027891, 
   19048.947974, 19056.868421, 19064.789230, 19072.710403, 19080.631939, 19088.553837, 19096.476098, 19104.398722, 
   19112.321708, 19120.245056, 19128.168766, 19136.092839, 19144.017273, 19151.942069, 19159.867226, 19167.792745, 
   19175.718626, 19183.644867, 19191.571470, 19199.498433, 19207.425758, 19215.353443, 19223.281488, 19231.209894, 
   19239.138661, 19247.067787, 19254.997274, 19262.927120, 19270.857326, 19278.787892, 19286.718817, 19294.650102, 
   19302.581746, 19310.513749, 19318.446112, 19326.378833, 19334.311912, 19342.245351, 19350.179148, 19358.113303, 
   19366.047816, 19373.982688, 19381.917917, 19389.853505, 19397.789450, 19405.725753, 19413.662413, 19421.599430, 
   19429.536805, 19437.474537, 19445.412625, 19453.351071, 19461.289873, 19469.229032, 19477.168547, 19485.108419, 
   19493.048647, 19500.989230, 19508.930170, 19516.871466, 19524.813117, 19532.755124, 19540.697486, 19548.640204, 
   19556.583276, 19564.526704, 19572.470487, 19580.414624, 19588.359116, 19596.303963, 19604.249164, 19612.194720, 
   19620.140629, 19628.086893, 19636.033511, 19643.980482, 19651.927807, 19659.875485, 19667.823517, 19675.771903, 
   19683.720641, 19691.669733, 19699.619177, 19707.568974, 19715.519124, 19723.469627, 19731.420482, 19739.371689, 
   19747.323248, 19755.275159, 19763.227423, 19771.180038, 19779.133005, 19787.086323, 19795.039993, 19802.994014, 
   19810.948386, 19818.903109, 19826.858184, 19834.813609, 19842.769385, 19850.725511, 19858.681988, 19866.638815, 
   19874.595992, 19882.553520, 19890.511397, 19898.469624, 19906.428201, 19914.387128, 19922.346403, 19930.306029, 
   19938.266003, 19946.226327, 19954.187000, 19962.148021, 19970.109391, 19978.071110, 19986.033177, 19993.995593, 
   20001.958357, 20009.921469, 20017.884929, 20025.848737, 20033.812893, 20041.777396, 20049.742247, 20057.707445, 
   20065.672991, 20073.638884, 20081.605123, 20089.571710, 20097.538644, 20105.505924, 20113.473550, 20121.441524, 
   20129.409843, 20137.378509, 20145.347521, 20153.316878, 20161.286582, 20169.256631, 20177.227026, 20185.197767, 
   20193.168852, 20201.140283, 20209.112059, 20217.084181, 20225.056647, 20233.029457, 20241.002613, 20248.976113, 
   20256.949957, 20264.924146, 20272.898679, 20280.873556, 20288.848776, 20296.824341, 20304.800249, 20312.776501, 
   20320.753097, 20328.730036, 20336.707318, 20344.684943, 20352.662911, 20360.641222, 20368.619875, 20376.598872, 
   20384.578211, 20392.557892, 20400.537916, 20408.518281, 20416.498989, 20424.480039, 20432.461431, 20440.443164, 
   20448.425239, 20456.407655, 20464.390413, 20472.373512, 20480.356952, 20488.340733, 20496.324855, 20504.309317, 
   20512.294121, 20520.279265, 20528.264749, 20536.250574, 20544.236739, 20552.223244, 20560.210089, 20568.197273, 
   20576.184798, 20584.172662, 20592.160865, 20600.149408, 20608.138291, 20616.127512, 20624.117073, 20632.106972, 
   20640.097210, 20648.087787, 20656.078702, 20664.069956, 20672.061549, 20680.053479, 20688.045748, 20696.038354, 
   20704.031299, 20712.024581, 20720.018201, 20728.012159, 20736.006454, 20744.001086, 20751.996056, 20759.991362, 
   20767.987006, 20775.982986, 20783.979304, 20791.975958, 20799.972948, 20807.970275, 20815.967938, 20823.965937, 
   20831.964273, 20839.962944, 20847.961951, 20855.961294, 20863.960973, 20871.960987, 20879.961336, 20887.962021, 
   20895.963041, 20903.964396, 20911.966086, 20919.968111, 20927.970470, 20935.973165, 20943.976193, 20951.979556, 
   20959.983254, 20967.987285, 20975.991651, 20983.996350, 20992.001384, 21000.006751, 21008.012451, 21016.018485, 
   21024.024853, 21032.031554, 21040.038588, 21048.045955, 21056.053655, 21064.061688, 21072.070053, 21080.078752, 
   21088.087782, 21096.097145, 21104.106841, 21112.116868, 21120.127228, 21128.137919, 21136.148943, 21144.160298, 
   21152.171985, 21160.184003, 21168.196352, 21176.209033, 21184.222045, 21192.235389, 21200.249063, 21208.263068, 
   21216.277404, 21224.292070, 21232.307067, 21240.322394, 21248.338052, 21256.354040, 21264.370357, 21272.387005, 
   21280.403983, 21288.421291, 21296.438928, 21304.456894, 21312.475191, 21320.493816, 21328.512771, 21336.532055, 
   21344.551667, 21352.571609, 21360.591879, 21368.612479, 21376.633406, 21384.654663, 21392.676247, 21400.698160, 
   21408.720401, 21416.742970, 21424.765867, 21432.789091, 21440.812644, 21448.836524, 21456.860731, 21464.885266, 
   21472.910128, 21480.935317, 21488.960834, 21496.986677, 21505.012847, 21513.039344, 21521.066168, 21529.093318, 
   21537.120795, 21545.148597, 21553.176726, 21561.205182, 21569.233963, 21577.263070, 21585.292503, 21593.322261, 
   21601.352345, 21609.382755, 21617.413490, 21625.444550, 21633.475935, 21641.507646, 21649.539681, 21657.572041, 
   21665.604726, 21673.637736, 21681.671070, 21689.704728, 21697.738711, 21705.773018, 21713.807649, 21721.842604, 
   21729.877883, 21737.913485, 21745.949412, 21753.985662, 21762.022235, 21770.059132, 21778.096352, 21786.133895, 
   21794.171761, 21802.209950, 21810.248462, 21818.287297, 21826.326455, 21834.365934, 21842.405737, 21850.445862, 
   21858.486308, 21866.527077, 21874.568168, 21882.609581, 21890.651316, 21898.693372, 21906.735750, 21914.778450, 
   21922.821471, 21930.864813, 21938.908476, 21946.952461, 21954.996766, 21963.041392, 21971.086339, 21979.131607, 
   21987.177195, 21995.223104, 22003.269333, 22011.315883, 22019.362752, 22027.409942, 22035.457451, 22043.505281, 
   22051.553430, 22059.601898, 22067.650687, 22075.699794, 22083.749222, 22091.798968, 22099.849033, 22107.899418, 
   22115.950121, 22124.001143, 22132.052484, 22140.104144, 22148.156122, 22156.208418, 22164.261033, 22172.313966, 
   22180.367217, 22188.420787, 22196.474674, 22204.528879, 22212.583401, 22220.638241, 22228.693399, 22236.748874, 
   22244.804667, 22252.860776, 22260.917203, 22268.973947, 22277.031008, 22285.088385, 22293.146079, 22301.204090, 
   22309.262417, 22317.321061, 22325.380021, 22333.439297, 22341.498890, 22349.558798, 22357.619022, 22365.679562, 
   22373.740418, 22381.801589, 22389.863076, 22397.924879, 22405.986996, 22414.049429, 22422.112177, 22430.175240, 
   22438.238618, 22446.302310, 22454.366318, 22462.430639, 22470.495276, 22478.560227, 22486.625492, 22494.691071, 
   22502.756965, 22510.823173, 22518.889694, 22526.956529, 22535.023678, 22543.091141, 22551.158917, 22559.227007, 
   22567.295410, 22575.364126, 22583.433155, 22591.502498, 22599.572153, 22607.642121, 22615.712402, 22623.782996, 
   22631.853902, 22639.925120, 22647.996651, 22656.068494, 22664.140650, 22672.213117, 22680.285896, 22688.358988, 
   22696.432391, 22704.506105, 22712.580131, 22720.654469, 22728.729118, 22736.804078, 22744.879350, 22752.954933, 
   22761.030826, 22769.107031, 22777.183546, 22785.260372, 22793.337509, 22801.414956, 22809.492714, 22817.570781, 
   22825.649160, 22833.727848, 22841.806846, 22849.886154, 22857.965772, 22866.045700, 22874.125937, 22882.206484, 
   22890.287341, 22898.368507, 22906.449982, 22914.531766, 22922.613859, 22930.696261, 22938.778972, 22946.861992, 
   22954.945321, 22963.028958, 22971.112904, 22979.197158, 22987.281720, 22995.366591, 23003.451770, 23011.537257, 
   23019.623051, 23027.709154, 23035.795564, 23043.882282, 23051.969308, 23060.056640, 23068.144281, 23076.232228, 
   23084.320483, 23092.409045, 23100.497914, 23108.587089, 23116.676572, 23124.766361, 23132.856457, 23140.946859, 
   23149.037568, 23157.128583, 23165.219904, 23173.311531, 23181.403465, 23189.495704, 23197.588250, 23205.681101, 
   23213.774257, 23221.867720, 23229.961487, 23238.055560, 23246.149939, 23254.244623, 23262.339611, 23270.434905, 
   23278.530504, 23286.626407, 23294.722616, 23302.819129, 23310.915946, 23319.013068, 23327.110494, 23335.208225, 
   23343.306260, 23351.404598, 23359.503241, 23367.602188, 23375.701439, 23383.800993, 23391.900851, 23400.001012, 
   23408.101477, 23416.202245, 23424.303317, 23432.404692, 23440.506369, 23448.608350, 23456.710634, 23464.813220, 
   23472.916109, 23481.019301, 23489.122795, 23497.226592, 23505.330691, 23513.435092, 23521.539796, 23529.644801, 
   23537.750109, 23545.855718, 23553.961629, 23562.067842, 23570.174357, 23578.281173, 23586.388290, 23594.495709, 
   23602.603429, 23610.711450, 23618.819773, 23626.928396, 23635.037320, 23643.146545, 23651.256071, 23659.365897, 
   23667.476024, 23675.586451, 23683.697179, 23691.808206, 23699.919534, 23708.031163, 23716.143091, 23724.255319, 
   23732.367846, 23740.480674, 23748.593801, 23756.707228, 23764.820954, 23772.934979, 23781.049304, 23789.163928, 
   23797.278851, 23805.394073, 23813.509594, 23821.625413, 23829.741532, 23837.857949, 23845.974664, 23854.091678, 
   23862.208991, 23870.326602, 23878.444511, 23886.562718, 23894.681223, 23902.800026, 23910.919127, 23919.038525, 
   23927.158221, 23935.278215, 23943.398507, 23951.519095, 23959.639981, 23967.761165, 23975.882645, 23984.004422, 
   23992.126497, 24000.248868, 24008.371536, 24016.494501, 24024.617762, 24032.741320, 24040.865174, 24048.989325, 
   24057.113772, 24065.238515, 24073.363554, 24081.488889, 24089.614520, 24097.740447, 24105.866669, 24113.993187, 
   24122.120001, 24130.247110, 24138.374515, 24146.502215, 24154.630210, 24162.758500, 24170.887085, 24179.015965, 
   24187.145140, 24195.274610, 24203.404374, 24211.534433, 24219.664787, 24227.795435, 24235.926377, 24244.057614, 
   24252.189144, 24260.320969, 24268.453088, 24276.585501, 24284.718207, 24292.851207, 24300.984501, 24309.118089, 
   24317.251970, 24325.386144, 24333.520611, 24341.655372, 24349.790426, 24357.925773, 24366.061413, 24374.197346, 
   24382.333571, 24390.470090, 24398.606900, 24406.744004, 24414.881400, 24423.019088, 24431.157068, 24439.295341, 
   24447.433906, 24455.572762, 24463.711911, 24471.851352, 24479.991084, 24488.131108, 24496.271423, 24504.412030, 
   24512.552929, 24520.694119, 24528.835600, 24536.977372, 24545.119435, 24553.261789, 24561.404435, 24569.547371, 
   24577.690597, 24585.834115, 24593.977923, 24602.122021, 24610.266410, 24618.411089, 24626.556059, 24634.701318, 
   24642.846868, 24650.992708, 24659.138837, 24667.285256, 24675.431965, 24683.578964, 24691.726252, 24699.873830, 
   24708.021697, 24716.169854, 24724.318299, 24732.467034, 24740.616058, 24748.765371, 24756.914973, 24765.064863, 
   24773.215042, 24781.365510, 24789.516267, 24797.667312, 24805.818645, 24813.970267, 24822.122177, 24830.274375, 
   24838.426861, 24846.579635, 24854.732697, 24862.886046, 24871.039684, 24879.193609, 24887.347822, 24895.502322, 
   24903.657110, 24911.812184, 24919.967547, 24928.123196, 24936.279132, 24944.435355, 24952.591866, 24960.748663, 
   24968.905746, 24977.063117, 24985.220774, 24993.378717, 25001.536947, 25009.695464, 25017.854266, 25026.013355, 
   25034.172730, 25042.332390, 25050.492337, 25058.652569, 25066.813088, 25074.973892, 25083.134981, 25091.296356, 
   25099.458017, 25107.619962, 25115.782193, 25123.944710, 25132.107511, 25140.270597, 25148.433969, 25156.597625, 
   25164.761566, 25172.925791, 25181.090302, 25189.255097, 25197.420176, 25205.585539, 25213.751187, 25221.917120, 
   25230.083336, 25238.249836, 25246.416620, 25254.583689, 25262.751041, 25270.918676, 25279.086596, 25287.254799, 
   25295.423285, 25303.592055, 25311.761108, 25319.930444, 25328.100064, 25336.269967, 25344.440152, 25352.610621, 
   25360.781372, 25368.952406, 25377.123723, 25385.295323, 25393.467205, 25401.639369, 25409.811816, 25417.984545, 
   25426.157556, 25434.330850, 25442.504425, 25450.678283, 25458.852422, 25467.026843, 25475.201546, 25483.376531, 
   25491.551797, 25499.727344, 25507.903173, 25516.079284, 25524.255675, 25532.432348, 25540.609302, 25548.786537, 
   25556.964053, 25565.141849, 25573.319927, 25581.498285, 25589.676924, 25597.855843, 25606.035043, 25614.214523, 
   25622.394284, 25630.574324, 25638.754645, 25646.935246, 25655.116127, 25663.297288, 25671.478729, 25679.660449, 
   25687.842449, 25696.024729, 25704.207288, 25712.390127, 25720.573245, 25728.756642, 25736.940319, 25745.124275, 
   25753.308510, 25761.493023, 25769.677816, 25777.862887, 25786.048238, 25794.233867, 25802.419774, 25810.605960, 
   25818.792424, 25826.979167, 25835.166188, 25843.353488, 25851.541065, 25859.728920, 25867.917054, 25876.105465, 
   25884.294154, 25892.483121, 25900.672366, 25908.861888, 25917.051687, 25925.241764, 25933.432119, 25941.622750, 
   25949.813659, 25958.004845, 25966.196308, 25974.388048, 25982.580065, 25990.772359, 25998.964930, 26007.157777, 
   26015.350900, 26023.544301, 26031.737977, 26039.931930, 26048.126160, 26056.320665, 26064.515447, 26072.710504, 
   26080.905838, 26089.101448, 26097.297333, 26105.493494, 26113.689931, 26121.886643, 26130.083631, 26138.280895, 
   26146.478434, 26154.676248, 26162.874337, 26171.072701, 26179.271341, 26187.470255, 26195.669444, 26203.868909, 
   26212.068648, 26220.268661, 26228.468950, 26236.669512, 26244.870350, 26253.071461, 26261.272847, 26269.474507, 
   26277.676442, 26285.878650, 26294.081133, 26302.283889, 26310.486919, 26318.690223, 26326.893801, 26335.097652, 
   26343.301777, 26351.506176, 26359.710848, 26367.915793, 26376.121011, 26384.326503, 26392.532267, 26400.738305, 
   26408.944616, 26417.151200, 26425.358056, 26433.565185, 26441.772587, 26449.980261, 26458.188208, 26466.396428, 
   26474.604919, 26482.813684, 26491.022720, 26499.232028, 26507.441609, 26515.651461, 26523.861586, 26532.071982, 
   26540.282650, 26548.493590, 26556.704801, 26564.916284, 26573.128038, 26581.340064, 26589.552361, 26597.764930, 
   26605.977769, 26614.190880, 26622.404262, 26630.617914, 26638.831838, 26647.046032, 26655.260498, 26663.475233, 
   26671.690240, 26679.905517, 26688.121064, 26696.336882, 26704.552970, 26712.769328, 26720.985957, 26729.202855, 
   26737.420024, 26745.637463, 26753.855171, 26762.073149, 26770.291397, 26778.509915, 26786.728702, 26794.947759, 
   26803.167085, 26811.386680, 26819.606545, 26827.826679, 26836.047082, 26844.267754, 26852.488695, 26860.709905, 
   26868.931384, 26877.153132, 26885.375148, 26893.597433, 26901.819987, 26910.042809, 26918.265900, 26926.489259, 
   26934.712886, 26942.936781, 26951.160945, 26959.385376, 26967.610076, 26975.835043, 26984.060279, 26992.285782, 
   27000.511553, 27008.737591, 27016.963897, 27025.190470, 27033.417311, 27041.644420, 27049.871795, 27058.099438, 
   27066.327348, 27074.555525, 27082.783968, 27091.012679, 27099.241657, 27107.470901, 27115.700412, 27123.930190, 
   27132.160234, 27140.390545, 27148.621123, 27156.851966, 27165.083076, 27173.314452, 27181.546094, 27189.778002, 
   27198.010177, 27206.242617, 27214.475323, 27222.708295, 27230.941532, 27239.175035, 27247.408804, 27255.642838, 
   27263.877138, 27272.111703, 27280.346533, 27288.581629, 27296.816989, 27305.052615, 27313.288506, 27321.524661, 
   27329.761082, 27337.997767, 27346.234717, 27354.471932, 27362.709411, 27370.947155, 27379.185163, 27387.423436, 
   27395.661973, 27403.900774, 27412.139839, 27420.379169, 27428.618762, 27436.858620, 27445.098741, 27453.339126, 
   27461.579775, 27469.820687, 27478.061864, 27486.303303, 27494.545006, 27502.786973, 27511.029203, 27519.271696, 
   27527.514452, 27535.757472, 27544.000754, 27552.244300, 27560.488108, 27568.732180, 27576.976514, 27585.221110, 
   27593.465970, 27601.711092, 27609.956476, 27618.202123, 27626.448032, 27634.694204, 27642.940638, 27651.187334, 
   27659.434292, 27667.681512, 27675.928994, 27684.176738, 27692.424743, 27700.673011, 27708.921540, 27717.170331, 
   27725.419383, 27733.668697, 27741.918272, 27750.168108, 27758.418206, 27766.668565, 27774.919185, 27783.170066, 
   27791.421208, 27799.672611, 27807.924275, 27816.176200, 27824.428385, 27832.680832, 27840.933538, 27849.186505, 
   27857.439733, 27865.693221, 27873.946969, 27882.200978, 27890.455247, 27898.709776, 27906.964565, 27915.219614, 
   27923.474922, 27931.730491, 27939.986319, 27948.242408, 27956.498755, 27964.755363, 27973.012230, 27981.269356, 
   27989.526741, 27997.784386, 28006.042291, 28014.300454, 28022.558876, 28030.817558, 28039.076498, 28047.335698, 
   28055.595156, 28063.854873, 28072.114849, 28080.375083, 28088.635576, 28096.896327, 28105.157337, 28113.418605, 
   28121.680131, 28129.941916, 28138.203959, 28146.466260, 28154.728819, 28162.991636, 28171.254711, 28179.518043, 
   28187.781634, 28196.045482, 28204.309588, 28212.573951, 28220.838572, 28229.103450, 28237.368586, 28245.633979, 
   28253.899629, 28262.165536, 28270.431701, 28278.698122, 28286.964801, 28295.231736, 28303.498928, 28311.766377, 
   28320.034083, 28328.302045, 28336.570264, 28344.838739, 28353.107471, 28361.376459, 28369.645704, 28377.915205, 
   28386.184962, 28394.454975, 28402.725244, 28410.995769, 28419.266550, 28427.537587, 28435.808879, 28444.080428, 
   28452.352232, 28460.624291, 28468.896606, 28477.169177, 28485.442003, 28493.715084, 28501.988421, 28510.262013, 
   28518.535860, 28526.809962, 28535.084319, 28543.358931, 28551.633798, 28559.908919, 28568.184296, 28576.459927, 
   28584.735812, 28593.011952, 28601.288347, 28609.564996, 28617.841900, 28626.119058, 28634.396470, 28642.674136, 
   28650.952056, 28659.230230, 28667.508659, 28675.787341, 28684.066277, 28692.345466, 28700.624910, 28708.904607, 
   28717.184558, 28725.464762, 28733.745220, 28742.025931, 28750.306895, 28758.588113, 28766.869584, 28775.151308, 
   28783.433285, 28791.715515, 28799.997998, 28808.280734, 28816.563722, 28824.846964, 28833.130458, 28841.414205, 
   28849.698204, 28857.982456, 28866.266960, 28874.551717, 28882.836726, 28891.121987, 28899.407500, 28907.693265, 
   28915.979283, 28924.265552, 28932.552074, 28940.838847, 28949.125872, 28957.413149, 28965.700677, 28973.988457, 
   28982.276489, 28990.564772, 28998.853306, 29007.142092, 29015.431129, 29023.720417, 29032.009957, 29040.299748, 
   29048.589789, 29056.880082, 29065.170625, 29073.461420, 29081.752465, 29090.043761, 29098.335307, 29106.627104, 
   29114.919152, 29123.211450, 29131.503998, 29139.796797, 29148.089846, 29156.383146, 29164.676695, 29172.970495, 
   29181.264545, 29189.558844, 29197.853394, 29206.148193, 29214.443242, 29222.738541, 29231.034090, 29239.329888, 
   29247.625935, 29255.922232, 29264.218779, 29272.515575, 29280.812620, 29289.109914, 29297.407458, 29305.705251, 
   29314.003292, 29322.301583, 29330.600122, 29338.898911, 29347.197948, 29355.497234, 29363.796768, 29372.096552, 
   29380.396583, 29388.696863, 29396.997392, 29405.298169, 29413.599194, 29421.900468, 29430.201989, 29438.503759, 
   29446.805777, 29455.108043, 29463.410557, 29471.713318, 29480.016327, 29488.319585, 29496.623089, 29504.926842, 
   29513.230842, 29521.535089, 29529.839584, 29538.144326, 29546.449316, 29554.754553, 29563.060037, 29571.365768, 
   29579.671746, 29587.977971, 29596.284444, 29604.591163, 29612.898129, 29621.205341, 29629.512800, 29637.820506, 
   29646.128459, 29654.436658, 29662.745104, 29671.053795, 29679.362734, 29687.671918, 29695.981349, 29704.291026, 
   29712.600949, 29720.911118, 29729.221533, 29737.532194, 29745.843101, 29754.154253, 29762.465651, 29770.777295, 
   29779.089185, 29787.401320, 29795.713701, 29804.026327, 29812.339198, 29820.652315, 29828.965677, 29837.279284, 
   29845.593136, 29853.907233, 29862.221576, 29870.536163, 29878.850995, 29887.166072, 29895.481394, 29903.796960, 
   29912.112772, 29920.428827, 29928.745128, 29937.061672, 29945.378461, 29953.695495, 29962.012773, 29970.330295, 
   29978.648061, 29986.966071, 29995.284325, 30003.602824, 30011.921566, 30020.240552, 30028.559782, 30036.879256, 
   30045.198973, 30053.518934, 30061.839139, 30070.159587, 30078.480278, 30086.801213, 30095.122392, 30103.443813, 
   30111.765478, 30120.087386, 30128.409537, 30136.731931, 30145.054568, 30153.377448, 30161.700571, 30170.023937, 
   30178.347545, 30186.671397, 30194.995490, 30203.319827, 30211.644406, 30219.969227, 30228.294290, 30236.619597, 
   30244.945145, 30253.270935, 30261.596968, 30269.923243, 30278.249760, 30286.576518, 30294.903519, 30303.230762, 
   30311.558246, 30319.885972, 30328.213940, 30336.542150, 30344.870601, 30353.199293, 30361.528227, 30369.857403, 
   30378.186820, 30386.516478, 30394.846377, 30403.176517, 30411.506899, 30419.837522, 30428.168385, 30436.499490, 
   30444.830835, 30453.162422, 30461.494249, 30469.826316, 30478.158625, 30486.491174, 30494.823963, 30503.156993, 
   30511.490263, 30519.823774, 30528.157525, 30536.491516, 30544.825748, 30553.160219, 30561.494931, 30569.829882, 
   30578.165074, 30586.500506, 30594.836177, 30603.172088, 30611.508239, 30619.844629, 30628.181259, 30636.518129, 
   30644.855238, 30653.192587, 30661.530175, 30669.868002, 30678.206068, 30686.544374, 30694.882919, 30703.221703, 
   30711.560726, 30719.899988, 30728.239489, 30736.579229, 30744.919207, 30753.259425, 30761.599881, 30769.940575, 
   30778.281508, 30786.622680, 30794.964090, 30803.305739, 30811.647626, 30819.989751, 30828.332115, 30836.674716, 
   30845.017556, 30853.360634, 30861.703950, 30870.047504, 30878.391296, 30886.735325, 30895.079592, 30903.424098, 
   30911.768840, 30920.113821, 30928.459039, 30936.804494, 30945.150187, 30953.496117, 30961.842285, 30970.188690, 
   30978.535332, 30986.882211, 30995.229327, 31003.576681, 31011.924271, 31020.272098, 31028.620163, 31036.968464, 
   31045.317002, 31053.665776, 31062.014787, 31070.364035, 31078.713519, 31087.063240, 31095.413198, 31103.763391, 
   31112.113821, 31120.464487, 31128.815390, 31137.166529, 31145.517903, 31153.869514, 31162.221361, 31170.573443, 
   31178.925762, 31187.278316, 31195.631106, 31203.984132, 31212.337394, 31220.690891, 31229.044624, 31237.398592, 
   31245.752795, 31254.107234, 31262.461908, 31270.816818, 31279.171963, 31287.527343, 31295.882958, 31304.238808, 
   31312.594893, 31320.951213, 31329.307767, 31337.664557, 31346.021582, 31354.378841, 31362.736335, 31371.094063, 
   31379.452026, 31387.810223, 31396.168655, 31404.527322, 31412.886222, 31421.245357, 31429.604726, 31437.964329, 
   31446.324167, 31454.684238, 31463.044544, 31471.405083, 31479.765856, 31488.126863, 31496.488104, 31504.849579, 
   31513.211287, 31521.573229, 31529.935405, 31538.297814, 31546.660456, 31555.023332, 31563.386441, 31571.749784, 
   31580.113359, 31588.477168, 31596.841210, 31605.205485, 31613.569993, 31621.934734, 31630.299708, 31638.664915, 
   31647.030355, 31655.396027, 31663.761932, 31672.128070, 31680.494440, 31688.861043, 31697.227878, 31705.594946, 
   31713.962246, 31722.329779, 31730.697543, 31739.065540, 31747.433769, 31755.802230, 31764.170924, 31772.539849, 
   31780.909006, 31789.278395, 31797.648016, 31806.017868, 31814.387953, 31822.758269, 31831.128816, 31839.499595, 
   31847.870606, 31856.241848, 31864.613322, 31872.985027, 31881.356963, 31889.729130, 31898.101529, 31906.474159, 
   31914.847019, 31923.220111, 31931.593434, 31939.966988, 31948.340772, 31956.714788, 31965.089034, 31973.463511, 
   31981.838218, 31990.213157, 31998.588325, 32006.963725, 32015.339354, 32023.715214, 32032.091305, 32040.467625, 
   32048.844176, 32057.220957, 32065.597968, 32073.975209, 32082.352681, 32090.730382, 32099.108313, 32107.486474, 
   32115.864865, 32124.243485, 32132.622336, 32141.001415, 32149.380725, 32157.760264, 32166.140032, 32174.520030, 
   32182.900258, 32191.280714, 32199.661400, 32208.042316, 32216.423460, 32224.804833, 32233.186436, 32241.568267, 
   32249.950328, 32258.332617, 32266.715136, 32275.097883, 32283.480859, 32291.864063, 32300.247496, 32308.631158, 
   32317.015049, 32325.399167, 32333.783515, 32342.168090, 32350.552894, 32358.937927, 32367.323187, 32375.708676, 
   32384.094393, 32392.480338, 32400.866510, 32409.252911, 32417.639540, 32426.026397, 32434.413481, 32442.800794, 
   32451.188334, 32459.576101, 32467.964097, 32476.352319, 32484.740770, 32493.129447, 32501.518353, 32509.907485, 
   32518.296845, 32526.686432, 32535.076246, 32543.466288, 32551.856556, 32560.247052, 32568.637774, 32577.028724, 
   32585.419900, 32593.811303, 32602.202933, 32610.594790, 32618.986873, 32627.379183, 32635.771720, 32644.164483, 
   32652.557473, 32660.950689, 32669.344131, 32677.737800, 32686.131695, 32694.525816, 32702.920163, 32711.314737, 
   32719.709536, 32728.104562, 32736.499813, 32744.895291, 32753.290994, 32761.686923, 32770.083078, 32778.479459, 
   32786.876065, 32795.272897, 32803.669954, 32812.067237, 32820.464745, 32828.862479, 32837.260438, 32845.658623, 
   32854.057032, 32862.455667, 32870.854527, 32879.253612, 32887.652922, 32896.052457, 32904.452218, 32912.852203, 
   32921.252412, 32929.652847, 32938.053506, 32946.454390, 32954.855499, 32963.256832, 32971.658390, 32980.060173, 
   32988.462179, 32996.864411, 33005.266866, 33013.669546, 33022.072450, 33030.475578, 33038.878931, 33047.282507, 
   33055.686308, 33064.090332, 33072.494581, 33080.899053, 33089.303749, 33097.708669, 33106.113813, 33114.519180, 
   33122.924771, 33131.330586, 33139.736624, 33148.142885, 33156.549370, 33164.956079, 33173.363011, 33181.770166, 
   33190.177544, 33198.585146, 33206.992970, 33215.401018, 33223.809289, 33232.217783, 33240.626499, 33249.035439, 
   33257.444601, 33265.853987, 33274.263595, 33282.673425, 33291.083479, 33299.493754, 33307.904253, 33316.314974, 
   33324.725917, 33333.137083, 33341.548471, 33349.960082, 33358.371914, 33366.783969, 33375.196246, 33383.608745, 
   33392.021466, 33400.434410, 33408.847575, 33417.260962, 33425.674571, 33434.088401, 33442.502454, 33450.916728, 
   33459.331224, 33467.745941, 33476.160880, 33484.576041, 33492.991422, 33501.407026, 33509.822850, 33518.238897, 
   33526.655164, 33535.071652, 33543.488362, 33551.905293, 33560.322445, 33568.739817, 33577.157411, 33585.575226, 
   33593.993262, 33602.411518, 33610.829995, 33619.248693, 33627.667612, 33636.086751, 33644.506111, 33652.925691, 
   33661.345492, 33669.765513, 33678.185755, 33686.606217, 33695.026899, 33703.447802, 33711.868925, 33720.290267, 
   33728.711830, 33737.133613, 33745.555616, 33753.977839, 33762.400282, 33770.822945, 33779.245827, 33787.668930, 
   33796.092252, 33804.515793, 33812.939555, 33821.363535, 33829.787736, 33838.212156, 33846.636795, 33855.061653, 
   33863.486731, 33871.912028, 33880.337545, 33888.763280, 33897.189235, 33905.615409, 33914.041802, 33922.468414, 
   33930.895244, 33939.322294, 33947.749562, 33956.177050, 33964.604756, 33973.032680, 33981.460824, 33989.889186, 
   33998.317766, 34006.746565, 34015.175583, 34023.604819, 34032.034273, 34040.463946, 34048.893836, 34057.323946, 
   34065.754273, 34074.184818, 34082.615582, 34091.046563, 34099.477763, 34107.909180, 34116.340815, 34124.772669, 
   34133.204739, 34141.637028, 34150.069535, 34158.502259, 34166.935200, 34175.368359, 34183.801736, 34192.235330, 
   34200.669142, 34209.103171, 34217.537417, 34225.971881, 34234.406561, 34242.841459, 34251.276574, 34259.711907, 
   34268.147456, 34276.583222, 34285.019205, 34293.455405, 34301.891822, 34310.328456, 34318.765306, 34327.202373, 
   34335.639657, 34344.077158, 34352.514874, 34360.952808, 34369.390958, 34377.829324, 34386.267907, 34394.706706, 
   34403.145722, 34411.584953, 34420.024401, 34428.464065, 34436.903945, 34445.344041, 34453.784354, 34462.224882, 
   34470.665626, 34479.106586, 34487.547761, 34495.989153, 34504.430760, 34512.872583, 34521.314621, 34529.756875, 
   34538.199345, 34546.642030, 34555.084931, 34563.528047, 34571.971378, 34580.414925, 34588.858687, 34597.302664, 
   34605.746856, 34614.191264, 34622.635886, 34631.080724, 34639.525776, 34647.971044, 34656.416526, 34664.862223, 
   34673.308135, 34681.754262, 34690.200603, 34698.647159, 34707.093930, 34715.540915, 34723.988115, 34732.435530, 
   34740.883158, 34749.331001, 34757.779059, 34766.227331, 34774.675817, 34783.124517, 34791.573431, 34800.022560, 
   34808.471902, 34816.921459, 34825.371229, 34833.821214, 34842.271412, 34850.721824, 34859.172450, 34867.623290, 
   34876.074343, 34884.525610, 34892.977091, 34901.428785, 34909.880693, 34918.332814, 34926.785149, 34935.237697, 
   34943.690458, 34952.143433, 34960.596620, 34969.050021, 34977.503636, 34985.957463, 34994.411503, 35002.865757, 
   35011.320223, 35019.774902, 35028.229795, 35036.684900, 35045.140217, 35053.595748, 35062.051491, 35070.507447, 
   35078.963615, 35087.419997, 35095.876590, 35104.333396, 35112.790415, 35121.247645, 35129.705089, 35138.162744, 
   35146.620612, 35155.078692, 35163.536984, 35171.995488, 35180.454204, 35188.913133, 35197.372273, 35205.831625, 
   35214.291189, 35222.750965, 35231.210953, 35239.671152, 35248.131563, 35256.592186, 35265.053021, 35273.514067, 
   35281.975324, 35290.436793, 35298.898474, 35307.360366, 35315.822469, 35324.284783, 35332.747309, 35341.210046, 
   35349.672994, 35358.136154, 35366.599524, 35375.063106, 35383.526898, 35391.990901, 35400.455116, 35408.919541, 
   35417.384177, 35425.849023, 35434.314081, 35442.779349, 35451.244828, 35459.710517, 35468.176417, 35476.642527, 
   35485.108848, 35493.575379, 35502.042121, 35510.509073, 35518.976235, 35527.443608, 35535.911191, 35544.378983, 
   35552.846986, 35561.315199, 35569.783622, 35578.252255, 35586.721098, 35595.190151, 35603.659414, 35612.128886, 
   35620.598568, 35629.068460, 35637.538562, 35646.008873, 35654.479394, 35662.950124, 35671.421064, 35679.892213, 
   35688.363572, 35696.835140, 35705.306917, 35713.778904, 35722.251100, 35730.723505, 35739.196119, 35747.668942, 
   35756.141974, 35764.615216, 35773.088666, 35781.562325, 35790.036193, 35798.510270, 35806.984556, 35815.459050, 
   35823.933753, 35832.408665, 35840.883786, 35849.359115, 35857.834652, 35866.310398, 35874.786353, 35883.262515, 
   35891.738887, 35900.215466, 35908.692254, 35917.169250, 35925.646454, 35934.123866, 35942.601487, 35951.079315, 
   35959.557352, 35968.035596, 35976.514049, 35984.992709, 35993.471577, 36001.950653, 36010.429936, 36018.909428, 
   36027.389127, 36035.869033, 36044.349147, 36052.829469, 36061.309998, 36069.790735, 36078.271679, 36086.752831, 
   36095.234189, 36103.715755, 36112.197529, 36120.679509, 36129.161697, 36137.644091, 36146.126693, 36154.609502, 
   36163.092517, 36171.575740, 36180.059170, 36188.542806, 36197.026649, 36205.510699, 36213.994956, 36222.479419, 
   36230.964089, 36239.448966, 36247.934049, 36256.419339, 36264.904835, 36273.390537, 36281.876446, 36290.362561, 
   36298.848883, 36307.335411, 36315.822145, 36324.309085, 36332.796231, 36341.283584, 36349.771142, 36358.258906, 
   36366.746877, 36375.235053, 36383.723435, 36392.212023, 36400.700817, 36409.189816, 36417.679021, 36426.168432, 
   36434.658048, 36443.147870, 36451.637898, 36460.128131, 36468.618569, 36477.109213, 36485.600063, 36494.091117, 
   36502.582377, 36511.073842, 36519.565512, 36528.057388, 36536.549468, 36545.041754, 36553.534244, 36562.026940, 
   36570.519840, 36579.012946, 36587.506256, 36595.999771, 36604.493491, 36612.987415, 36621.481545, 36629.975878, 
   36638.470417, 36646.965160, 36655.460108, 36663.955260, 36672.450616, 36680.946177, 36689.441942, 36697.937912, 
   36706.434086, 36714.930464, 36723.427046, 36731.923832, 36740.420823, 36748.918017, 36757.415416, 36765.913019, 
   36774.410825, 36782.908835, 36791.407050, 36799.905468, 36808.404089, 36816.902915, 36825.401944, 36833.901177, 
   36842.400614, 36850.900254, 36859.400097, 36867.900144, 36876.400395, 36884.900848, 36893.401506, 36901.902366, 
   36910.403430, 36918.904697, 36927.406167, 36935.907841, 36944.409717, 36952.911797, 36961.414079, 36969.916565, 
   36978.419253, 36986.922145, 36995.425239, 37003.928536, 37012.432036, 37020.935739, 37029.439644, 37037.943752, 
   37046.448062, 37054.952576, 37063.457291, 37071.962209, 37080.467330, 37088.972653, 37097.478178, 37105.983906, 
   37114.489836, 37122.995968, 37131.502303, 37140.008839, 37148.515578, 37157.022519, 37165.529662, 37174.037007, 
   37182.544554, 37191.052302, 37199.560253, 37208.068405, 37216.576760, 37225.085316, 37233.594073, 37242.103033, 
   37250.612194, 37259.121556, 37267.631120, 37276.140886, 37284.650853, 37293.161022, 37301.671392, 37310.181963, 
   37318.692736, 37327.203710, 37335.714885, 37344.226261, 37352.737838, 37361.249617, 37369.761597, 37378.273777, 
   37386.786159, 37395.298742, 37403.811525, 37412.324509, 37420.837695, 37429.351080, 37437.864667, 37446.378455, 
   37454.892443, 37463.406631, 37471.921021, 37480.435610, 37488.950401, 37497.465391, 37505.980583, 37514.495974, 
   37523.011566, 37531.527358, 37540.043351, 37548.559544, 37557.075936, 37565.592529, 37574.109323, 37582.626316, 
   37591.143509, 37599.660902, 37608.178495, 37616.696288, 37625.214281, 37633.732474, 37642.250866, 37650.769458, 
   37659.288250, 37667.807242, 37676.326433, 37684.845824, 37693.365414, 37701.885204, 37710.405193, 37718.925382, 
   37727.445770, 37735.966357, 37744.487144, 37753.008130, 37761.529315, 37770.050700, 37778.572283, 37787.094066, 
   37795.616048, 37804.138228, 37812.660608, 37821.183187, 37829.705964, 37838.228941, 37846.752116, 37855.275490, 
   37863.799063, 37872.322834, 37880.846805, 37889.370973, 37897.895341, 37906.419907, 37914.944671, 37923.469634, 
   37931.994796, 37940.520155, 37949.045713, 37957.571470, 37966.097424, 37974.623577, 37983.149929, 37991.676478, 
   38000.203225, 38008.730171, 38017.257314, 38025.784656, 38034.312195, 38042.839933, 38051.367868, 38059.896001, 
   38068.424332, 38076.952861, 38085.481587, 38094.010511, 38102.539633, 38111.068952, 38119.598469, 38128.128184, 
   38136.658096, 38145.188205, 38153.718512, 38162.249016, 38170.779718, 38179.310617, 38187.841713, 38196.373006, 
   38204.904497, 38213.436184, 38221.968069, 38230.500151, 38239.032430, 38247.564905, 38256.097578, 38264.630448, 
   38273.163514, 38281.696778, 38290.230238, 38298.763895, 38307.297748, 38315.831799, 38324.366046, 38332.900489, 
   38341.435129, 38349.969966, 38358.504999, 38367.040229, 38375.575655, 38384.111277, 38392.647096, 38401.183110, 
   38409.719322, 38418.255729, 38426.792333, 38435.329132, 38443.866128, 38452.403320, 38460.940708, 38469.478292, 
   38478.016072, 38486.554047, 38495.092219, 38503.630586, 38512.169150, 38520.707909, 38529.246863, 38537.786014, 
   38546.325360, 38554.864901, 38563.404638, 38571.944571, 38580.484699, 38589.025023, 38597.565542, 38606.106256, 
   38614.647166, 38623.188271, 38631.729571, 38640.271067, 38648.812757, 38657.354643, 38665.896724, 38674.439000, 
   38682.981471, 38691.524137, 38700.066998, 38708.610054, 38717.153305, 38725.696750, 38734.240391, 38742.784226, 
   38751.328256, 38759.872480, 38768.416899, 38776.961513, 38785.506321, 38794.051324, 38802.596522, 38811.141913, 
   38819.687500, 38828.233280, 38836.779255, 38845.325425, 38853.871788, 38862.418346, 38870.965098, 38879.512044, 
   38888.059184, 38896.606519, 38905.154047, 38913.701770, 38922.249686, 38930.797796, 38939.346100, 38947.894598, 
   38956.443290, 38964.992176, 38973.541255, 38982.090528, 38990.639995, 38999.189656, 39007.739510, 39016.289557, 
   39024.839798, 39033.390233, 39041.940861, 39050.491682, 39059.042697, 39067.593905, 39076.145306, 39084.696901, 
   39093.248689, 39101.800670, 39110.352844, 39118.905211, 39127.457771, 39136.010525, 39144.563471, 39153.116610, 
   39161.669943, 39170.223468, 39178.777186, 39187.331097, 39195.885200, 39204.439496, 39212.993985, 39221.548667, 
   39230.103541, 39238.658608, 39247.213867, 39255.769319, 39264.324964, 39272.880801, 39281.436830, 39289.993051, 
   39298.549465, 39307.106071, 39315.662870, 39324.219861, 39332.777043, 39341.334418, 39349.891985, 39358.449745, 
   39367.007696, 39375.565839, 39384.124174, 39392.682701, 39401.241420, 39409.800331, 39418.359434, 39426.918728, 
   39435.478214, 39444.037892, 39452.597761, 39461.157822, 39469.718075, 39478.278519, 39486.839155, 39495.399982, 
   39503.961001, 39512.522211, 39521.083612, 39529.645205, 39538.206989, 39546.768965, 39555.331131, 39563.893489, 
   39572.456038, 39581.018778, 39589.581709, 39598.144831, 39606.708144, 39615.271648, 39623.835343, 39632.399229, 
   39640.963306, 39649.527574, 39658.092032, 39666.656681, 39675.221521, 39683.786551, 39692.351773, 39700.917184, 
   39709.482787, 39718.048580, 39726.614563, 39735.180737, 39743.747101, 39752.313656, 39760.880401, 39769.447336, 
   39778.014461, 39786.581777, 39795.149283, 39803.716979, 39812.284866, 39820.852942, 39829.421209, 39837.989665, 
   39846.558311, 39855.127148, 39863.696174, 39872.265390, 39880.834797, 39889.404392, 39897.974178, 39906.544153, 
   39915.114319, 39923.684673, 39932.255218, 39940.825952, 39949.396875, 39957.967988, 39966.539291, 39975.110783, 
   39983.682464, 39992.254335, 40000.826395, 40009.398644, 40017.971083, 40026.543711, 40035.116528, 40043.689534, 
   40052.262730, 40060.836114, 40069.409688, 40077.983450, 40086.557402, 40095.131542, 40103.705871, 40112.280390, 
   40120.855097, 40129.429993, 40138.005077, 40146.580351, 40155.155813, 40163.731464, 40172.307303, 40180.883331, 
   40189.459548, 40198.035953, 40206.612546, 40215.189328, 40223.766298, 40232.343457, 40240.920804, 40249.498340, 
   40258.076063, 40266.653975, 40275.232076, 40283.810364, 40292.388840, 40300.967505, 40309.546357, 40318.125398, 
   40326.704627, 40335.284043, 40343.863648, 40352.443440, 40361.023420, 40369.603588, 40378.183944, 40386.764487, 
   40395.345218, 40403.926137, 40412.507244, 40421.088538, 40429.670020, 40438.251689, 40446.833546, 40455.415590, 
   40463.997821, 40472.580240, 40481.162847, 40489.745640, 40498.328621, 40506.911789, 40515.495145, 40524.078687, 
   40532.662417, 40541.246334, 40549.830438, 40558.414729, 40566.999207, 40575.583872, 40584.168723, 40592.753762, 
   40601.338988, 40609.924400, 40618.509999, 40627.095785, 40635.681758, 40644.267918, 40652.854264, 40661.440796, 
   40670.027515, 40678.614421, 40687.201514, 40695.788792, 40704.376258, 40712.963909, 40721.551747, 40730.139772, 
   40738.727982, 40747.316379, 40755.904963, 40764.493732, 40773.082687, 40781.671829, 40790.261157, 40798.850671, 
   40807.440371, 40816.030257, 40824.620328, 40833.210586, 40841.801030, 40850.391659, 40858.982475, 40867.573476, 
   40876.164663, 40884.756035, 40893.347594, 40901.939337, 40910.531267, 40919.123382, 40927.715683, 40936.308169, 
   40944.900841, 40953.493698, 40962.086740, 40970.679968, 40979.273381, 40987.866980, 40996.460764, 41005.054733, 
   41013.648887, 41022.243226, 41030.837751, 41039.432460, 41048.027355, 41056.622435, 41065.217700, 41073.813149, 
   41082.408784, 41091.004603, 41099.600608, 41108.196797, 41116.793171, 41125.389730, 41133.986473, 41142.583401, 
   41151.180514, 41159.777812, 41168.375294, 41176.972960, 41185.570811, 41194.168847, 41202.767067, 41211.365471, 
   41219.964060, 41228.562833, 41237.161791, 41245.760933, 41254.360259, 41262.959769, 41271.559463, 41280.159342, 
   41288.759405, 41297.359651, 41305.960082, 41314.560697, 41323.161496, 41331.762478, 41340.363645, 41348.964995, 
   41357.566530, 41366.168248, 41374.770150, 41383.372236, 41391.974505, 41400.576958, 41409.179595, 41417.782415, 
   41426.385419, 41434.988606, 41443.591977, 41452.195531, 41460.799269, 41469.403190, 41478.007295, 41486.611583, 
   41495.216054, 41503.820708, 41512.425546, 41521.030567, 41529.635771, 41538.241158, 41546.846729, 41555.452482, 
   41564.058418, 41572.664538, 41581.270840, 41589.877325, 41598.483994, 41607.090845, 41615.697879, 41624.305095, 
   41632.912495, 41641.520077, 41650.127842, 41658.735789, 41667.343920, 41675.952232, 41684.560728, 41693.169406, 
   41701.778266, 41710.387309, 41718.996534, 41727.605942, 41736.215532, 41744.825304, 41753.435259, 41762.045396, 
   41770.655715, 41779.266216, 41787.876900, 41796.487766, 41805.098813, 41813.710043, 41822.321455, 41830.933049, 
   41839.544825, 41848.156783, 41856.768922, 41865.381244, 41873.993747, 41882.606432, 41891.219299, 41899.832348, 
   41908.445578, 41917.058990, 41925.672584, 41934.286359, 41942.900316, 41951.514455, 41960.128774, 41968.743276, 
   41977.357959, 41985.972823, 41994.587868, 42003.203095, 42011.818504, 42020.434093, 42029.049864, 42037.665816, 
   42046.281949, 42054.898263, 42063.514759, 42072.131435, 42080.748293, 42089.365331, 42097.982551, 42106.599951, 
   42115.217532, 42123.835295, 42132.453238, 42141.071362, 42149.689666, 42158.308152, 42166.926818, 42175.545665, 
   42184.164692, 42192.783900, 42201.403289, 42210.022858, 42218.642608, 42227.262539, 42235.882649, 42244.502940, 
   42253.123412, 42261.744064, 42270.364896, 42278.985909, 42287.607101, 42296.228474, 42304.850028, 42313.471761, 
   42322.093674, 42330.715768, 42339.338042, 42347.960495, 42356.583129, 42365.205943, 42373.828936, 42382.452110, 
   42391.075463, 42399.698997, 42408.322710, 42416.946602, 42425.570675, 42434.194927, 42442.819359, 42451.443971, 
   42460.068762, 42468.693733, 42477.318883, 42485.944213, 42494.569722, 42503.195411, 42511.821279, 42520.447327, 
   42529.073554, 42537.699960, 42546.326546, 42554.953310, 42563.580254, 42572.207378, 42580.834680, 42589.462162, 
   42598.089822, 42606.717662, 42615.345681, 42623.973879, 42632.602255, 42641.230811, 42649.859545, 42658.488459, 
   42667.117551, 42675.746822, 42684.376272, 42693.005901, 42701.635708, 42710.265694, 42718.895859, 42727.526202, 
   42736.156724, 42744.787424, 42753.418303, 42762.049361, 42770.680597, 42779.312011, 42787.943604, 42796.575375, 
   42805.207324, 42813.839452, 42822.471758, 42831.104242, 42839.736905, 42848.369745, 42857.002764, 42865.635961, 
   42874.269336, 42882.902889, 42891.536620, 42900.170529, 42908.804616, 42917.438881, 42926.073323, 42934.707944, 
   42943.342743, 42951.977719, 42960.612873, 42969.248204, 42977.883714, 42986.519401, 42995.155266, 43003.791308, 
   43012.427528, 43021.063925, 43029.700500, 43038.337253, 43046.974183, 43055.611290, 43064.248575, 43072.886037, 
   43081.523676, 43090.161493, 43098.799486, 43107.437658, 43116.076006, 43124.714531, 43133.353234, 43141.992114, 
   43150.631170, 43159.270404, 43167.909815, 43176.549403, 43185.189168, 43193.829109, 43202.469228, 43211.109523, 
   43219.749995, 43228.390644, 43237.031470, 43245.672473, 43254.313652, 43262.955008, 43271.596540, 43280.238249, 
   43288.880135, 43297.522197, 43306.164436, 43314.806851, 43323.449442, 43332.092210, 43340.735155, 43349.378276, 
   43358.021573, 43366.665046, 43375.308696, 43383.952521, 43392.596524, 43401.240702, 43409.885056, 43418.529586, 
   43427.174293, 43435.819176, 43444.464234, 43453.109469, 43461.754879, 43470.400466, 43479.046228, 43487.692166, 
   43496.338280, 43504.984570, 43513.631035, 43522.277677, 43530.924493, 43539.571486, 43548.218654, 43556.865998, 
   43565.513518, 43574.161213, 43582.809083, 43591.457129, 43600.105351, 43608.753748, 43617.402320, 43626.051067, 
   43634.699990, 43643.349089, 43651.998362, 43660.647811, 43669.297435, 43677.947234, 43686.597208, 43695.247358, 
   43703.897682, 43712.548182, 43721.198856, 43729.849706, 43738.500731, 43747.151930, 43755.803304, 43764.454854, 
   43773.106578, 43781.758477, 43790.410550, 43799.062799, 43807.715222, 43816.367820, 43825.020592, 43833.673539, 
   43842.326661, 43850.979957, 43859.633428, 43868.287073, 43876.940893, 43885.594887, 43894.249056, 43902.903399, 
   43911.557917, 43920.212608, 43928.867474, 43937.522514, 43946.177729, 43954.833118, 43963.488681, 43972.144418, 
   43980.800329, 43989.456414, 43998.112673, 44006.769106, 44015.425714, 44024.082495, 44032.739450, 44041.396579, 
   44050.053882, 44058.711359, 44067.369009, 44076.026833, 44084.684831, 44093.343003, 44102.001349, 44110.659868, 
   44119.318561, 44127.977427, 44136.636467, 44145.295680, 44153.955067, 44162.614628, 44171.274362, 44179.934269, 
   44188.594350, 44197.254604, 44205.915031, 44214.575632, 44223.236406, 44231.897353, 44240.558473, 44249.219767, 
   44257.881233, 44266.542873, 44275.204686, 44283.866672, 44292.528831, 44301.191163, 44309.853668, 44318.516346, 
   44327.179196, 44335.842220, 44344.505416, 44353.168786, 44361.832328, 44370.496043, 44379.159930, 44387.823991, 
   44396.488223, 44405.152629, 44413.817207, 44422.481958, 44431.146881, 44439.811977, 44448.477245, 44457.142686, 
   44465.808299, 44474.474085, 44483.140043, 44491.806173, 44500.472476, 44509.138951, 44517.805598, 44526.472417, 
   44535.139409, 44543.806573, 44552.473908, 44561.141416, 44569.809096, 44578.476948, 44587.144973, 44595.813169, 
   44604.481537, 44613.150077, 44621.818788, 44630.487672, 44639.156728, 44647.825955, 44656.495354, 44665.164925, 
   44673.834668, 44682.504582, 44691.174668, 44699.844925, 44708.515355, 44717.185955, 44725.856728, 44734.527671, 
   44743.198787, 44751.870073, 44760.541531, 44769.213161, 44777.884962, 44786.556934, 44795.229078, 44803.901393, 
   44812.573879, 44821.246536, 44829.919364, 44838.592364, 44847.265535, 44855.938877, 44864.612390, 44873.286074, 
   44881.959929, 44890.633955, 44899.308152, 44907.982519, 44916.657058, 44925.331768, 44934.006648, 44942.681700, 
   44951.356922, 44960.032314, 44968.707878, 44977.383612, 44986.059517, 44994.735593, 45003.411839, 45012.088255, 
   45020.764843, 45029.441600, 45038.118529, 45046.795627, 45055.472896, 45064.150336, 45072.827946, 45081.505726, 
   45090.183677, 45098.861798, 45107.540089, 45116.218550, 45124.897182, 45133.575983, 45142.254955, 45150.934097, 
   45159.613409, 45168.292891, 45176.972543, 45185.652366, 45194.332358, 45203.012520, 45211.692852, 45220.373353, 
   45229.054025, 45237.734866, 45246.415878, 45255.097059, 45263.778410, 45272.459930, 45281.141620, 45289.823480, 
   45298.505509, 45307.187709, 45315.870077, 45324.552615, 45333.235323, 45341.918200, 45350.601247, 45359.284462, 
   45367.967848, 45376.651403, 45385.335127, 45394.019020, 45402.703083, 45411.387315, 45420.071716, 45428.756286, 
   45437.441025, 45446.125934, 45454.811012, 45463.496258, 45472.181674, 45480.867259, 45489.553013, 45498.238936, 
   45506.925028, 45515.611288, 45524.297718, 45532.984316, 45541.671083, 45550.358019, 45559.045124, 45567.732397, 
   45576.419840, 45585.107450, 45593.795230, 45602.483178, 45611.171295, 45619.859580, 45628.548034, 45637.236656, 
   45645.925447, 45654.614406, 45663.303534, 45671.992830, 45680.682294, 45689.371927, 45698.061728, 45706.751697, 
   45715.441835, 45724.132141, 45732.822615, 45741.513257, 45750.204067, 45758.895046, 45767.586192, 45776.277507, 
   45784.968989, 45793.660640, 45802.352458, 45811.044445, 45819.736599, 45828.428921, 45837.121412, 45845.814070, 
   45854.506895, 45863.199889, 45871.893050, 45880.586379, 45889.279876, 45897.973540, 45906.667372, 45915.361372, 
   45924.055539, 45932.749874, 45941.444376, 45950.139045, 45958.833883, 45967.528887, 45976.224059, 45984.919399, 
   45993.614905, 46002.310579, 46011.006421, 46019.702429, 46028.398605, 46037.094948, 46045.791458, 46054.488136, 
   46063.184980, 46071.881992, 46080.579171, 46089.276516, 46097.974029, 46106.671709, 46115.369556, 46124.067569, 
   46132.765750, 46141.464097, 46150.162611, 46158.861292, 46167.560140, 46176.259155, 46184.958336, 46193.657684, 
   46202.357199, 46211.056880, 46219.756728, 46228.456743, 46237.156924, 46245.857272, 46254.557786, 46263.258467, 
   46271.959314, 46280.660328, 46289.361508, 46298.062854, 46306.764367, 46315.466046, 46324.167891, 46332.869903, 
   46341.572081, 46350.274425, 46358.976935, 46367.679612, 46376.382454, 46385.085463, 46393.788638, 46402.491978, 
   46411.195485, 46419.899158, 46428.602997, 46437.307001, 46446.011172, 46454.715508, 46463.420011, 46472.124679, 
   46480.829513, 46489.534512, 46498.239678, 46506.945009, 46515.650506, 46524.356168, 46533.061996, 46541.767990, 
   46550.474149, 46559.180474, 46567.886964, 46576.593620, 46585.300442, 46594.007428, 46602.714581, 46611.421898, 
   46620.129381, 46628.837029, 46637.544843, 46646.252822, 46654.960966, 46663.669275, 46672.377749, 46681.086389, 
   46689.795194, 46698.504164, 46707.213299, 46715.922599, 46724.632064, 46733.341694, 46742.051489, 46750.761449, 
   46759.471574, 46768.181864, 46776.892319, 46785.602938, 46794.313722, 46803.024672, 46811.735785, 46820.447064, 
   46829.158507, 46837.870115, 46846.581888, 46855.293825, 46864.005927, 46872.718194, 46881.430625, 46890.143220, 
   46898.855980, 46907.568904, 46916.281993, 46924.995247, 46933.708664, 46942.422246, 46951.135993, 46959.849903, 
   46968.563978, 46977.278217, 46985.992621, 46994.707188, 47003.421920, 47012.136816, 47020.851876, 47029.567100, 
   47038.282488, 47046.998040, 47055.713756, 47064.429636, 47073.145680, 47081.861888, 47090.578260, 47099.294796, 
   47108.011495, 47116.728359, 47125.445386, 47134.162577, 47142.879932, 47151.597450, 47160.315132, 47169.032978, 
   47177.750987, 47186.469160, 47195.187496, 47203.905996, 47212.624660, 47221.343487, 47230.062478, 47238.781632, 
   47247.500949, 47256.220430, 47264.940074, 47273.659881, 47282.379852, 47291.099986, 47299.820283, 47308.540744, 
   47317.261368, 47325.982154, 47334.703104, 47343.424218, 47352.145494, 47360.866933, 47369.588536, 47378.310301, 
   47387.032229, 47395.754321, 47404.476575, 47413.198992, 47421.921572, 47430.644315, 47439.367220, 47448.090289, 
   47456.813520, 47465.536914, 47474.260471, 47482.984190, 47491.708073, 47500.432117, 47509.156325, 47517.880695, 
   47526.605227, 47535.329922, 47544.054780, 47552.779800, 47561.504982, 47570.230327, 47578.955835, 47587.681504, 
   47596.407336, 47605.133331, 47613.859487, 47622.585806, 47631.312288, 47640.038931, 47648.765737, 47657.492704, 
   47666.219834, 47674.947126, 47683.674580, 47692.402197, 47701.129975, 47709.857915, 47718.586017, 47727.314281, 
   47736.042707, 47744.771295, 47753.500045, 47762.228957, 47770.958031, 47779.687266, 47788.416663, 47797.146222, 
   47805.875943, 47814.605825, 47823.335869, 47832.066074, 47840.796442, 47849.526970, 47858.257661, 47866.988513, 
   47875.719526, 47884.450701, 47893.182037, 47901.913535, 47910.645194, 47919.377015, 47928.108997, 47936.841140, 
   47945.573445, 47954.305911, 47963.038538, 47971.771326, 47980.504275, 47989.237386, 47997.970658, 48006.704091, 
   48015.437685, 48024.171440, 48032.905356, 48041.639434, 48050.373672, 48059.108071, 48067.842631, 48076.577352, 
   48085.312234, 48094.047277, 48102.782480, 48111.517845, 48120.253370, 48128.989056, 48137.724902, 48146.460910, 
   48155.197078, 48163.933407, 48172.669896, 48181.406546, 48190.143356, 48198.880328, 48207.617459, 48216.354751, 
   48225.092204, 48233.829817, 48242.567590, 48251.305524, 48260.043618, 48268.781873, 48277.520288, 48286.258863, 
   48294.997599, 48303.736494, 48312.475550, 48321.214766, 48329.954143, 48338.693679, 48347.433376, 48356.173232, 
   48364.913249, 48373.653426, 48382.393762, 48391.134259, 48399.874916, 48408.615732, 48417.356709, 48426.097845, 
   48434.839142, 48443.580598, 48452.322214, 48461.063989, 48469.805925, 48478.548020, 48487.290275, 48496.032689, 
   48504.775264, 48513.517998, 48522.260891, 48531.003944, 48539.747157, 48548.490529, 48557.234060, 48565.977752, 
   48574.721602, 48583.465612, 48592.209782, 48600.954110, 48609.698598, 48618.443246, 48627.188053, 48635.933019, 
   48644.678144, 48653.423428, 48662.168872, 48670.914475, 48679.660237, 48688.406158, 48697.152238, 48705.898477, 
   48714.644876, 48723.391433, 48732.138150, 48740.885025, 48749.632059, 48758.379252, 48767.126604, 48775.874115, 
   48784.621785, 48793.369614, 48802.117601, 48810.865747, 48819.614052, 48828.362516, 48837.111138, 48845.859919, 
   48854.608859, 48863.357957, 48872.107214, 48880.856629, 48889.606203, 48898.355936, 48907.105827, 48915.855876, 
   48924.606084, 48933.356450, 48942.106975, 48950.857658, 48959.608499, 48968.359499, 48977.110657, 48985.861973, 
   48994.613448, 49003.365080, 49012.116871, 49020.868820, 49029.620928, 49038.373193, 49047.125616, 49055.878198, 
   49064.630937, 49073.383835, 49082.136890, 49090.890104, 49099.643475, 49108.397005, 49117.150692, 49125.904537, 
   49134.658540, 49143.412701, 49152.167019, 49160.921495, 49169.676129, 49178.430921, 49187.185871, 49195.940978, 
   49204.696243, 49213.451665, 49222.207245, 49230.962982, 49239.718877, 49248.474930, 49257.231140, 49265.987508, 
   49274.744033, 49283.500715, 49292.257555, 49301.014552, 49309.771707, 49318.529019, 49327.286488, 49336.044114, 
   49344.801898, 49353.559839, 49362.317937, 49371.076192, 49379.834604, 49388.593174, 49397.351900, 49406.110784, 
   49414.869825, 49423.629023, 49432.388377, 49441.147889, 49449.907558, 49458.667383, 49467.427366, 49476.187505, 
   49484.947801, 49493.708254, 49502.468864, 49511.229631, 49519.990554, 49528.751634, 49537.512871, 49546.274265, 
   49555.035815, 49563.797522, 49572.559385, 49581.321405, 49590.083581, 49598.845915, 49607.608404, 49616.371050, 
   49625.133853, 49633.896811, 49642.659927, 49651.423199, 49660.186627, 49668.950211, 49677.713952, 49686.477849, 
   49695.241902, 49704.006112, 49712.770477, 49721.534999, 49730.299677, 49739.064511, 49747.829502, 49756.594648, 
   49765.359951, 49774.125409, 49782.891024, 49791.656794, 49800.422721, 49809.188803, 49817.955042, 49826.721436, 
   49835.487986, 49844.254692, 49853.021554, 49861.788572, 49870.555745, 49879.323074, 49888.090559, 49896.858200, 
   49905.625996, 49914.393948, 49923.162055, 49931.930318, 49940.698737, 49949.467311, 49958.236041, 49967.004927, 
   49975.773967, 49984.543164, 49993.312515, 50002.082022, 50010.851685, 50019.621503, 50028.391476, 50037.161605, 
   50045.931888, 50054.702327, 50063.472922, 50072.243671, 50081.014576, 50089.785636, 50098.556851, 50107.328221, 
   50116.099747, 50124.871427, 50133.643262, 50142.415253, 50151.187398, 50159.959699, 50168.732154, 50177.504764, 
   50186.277529, 50195.050450, 50203.823525, 50212.596754, 50221.370139, 50230.143678, 50238.917372, 50247.691221, 
   50256.465225, 50265.239383, 50274.013696, 50282.788164, 50291.562786, 50300.337563, 50309.112494, 50317.887580, 
   50326.662821, 50335.438216, 50344.213765, 50352.989469, 50361.765327, 50370.541340, 50379.317507, 50388.093828, 
   50396.870304, 50405.646934, 50414.423719, 50423.200657, 50431.977750, 50440.754997, 50449.532399, 50458.309954, 
   50467.087664, 50475.865527, 50484.643545, 50493.421717, 50502.200043, 50510.978523, 50519.757157, 50528.535945, 
   50537.314887, 50546.093983, 50554.873232, 50563.652636, 50572.432193, 50581.211905, 50589.991770, 50598.771789, 
   50607.551961, 50616.332288, 50625.112768, 50633.893402, 50642.674189, 50651.455130, 50660.236225, 50669.017473, 
   50677.798875, 50686.580431, 50695.362140, 50704.144002, 50712.926018, 50721.708187, 50730.490510, 50739.272987, 
   50748.055616, 50756.838399, 50765.621336, 50774.404425, 50783.187668, 50791.971064, 50800.754614, 50809.538317, 
   50818.322173, 50827.106182, 50835.890344, 50844.674659, 50853.459128, 50862.243749, 50871.028524, 50879.813451, 
   50888.598532, 50897.383766, 50906.169152, 50914.954692, 50923.740384, 50932.526230, 50941.312228, 50950.098379, 
   50958.884683, 50967.671139, 50976.457749, 50985.244511, 50994.031426, 51002.818494, 51011.605714, 51020.393087, 
   51029.180613, 51037.968291, 51046.756122, 51055.544105, 51064.332241, 51073.120529, 51081.908970, 51090.697564, 
   51099.486310, 51108.275208, 51117.064259, 51125.853462, 51134.642817, 51143.432325, 51152.221985, 51161.011798, 
   51169.801762, 51178.591879, 51187.382148, 51196.172569, 51204.963143, 51213.753869, 51222.544746, 51231.335776, 
   51240.126958, 51248.918292, 51257.709778, 51266.501416, 51275.293206, 51284.085148, 51292.877242, 51301.669488, 
   51310.461886, 51319.254435, 51328.047137, 51336.839990, 51345.632995, 51354.426152, 51363.219461, 51372.012921, 
   51380.806533, 51389.600297, 51398.394212, 51407.188279, 51415.982498, 51424.776868, 51433.571390, 51442.366064, 
   51451.160889, 51459.955865, 51468.750993, 51477.546272, 51486.341703, 51495.137285, 51503.933019, 51512.728904, 
   51521.524940, 51530.321128, 51539.117467, 51547.913957, 51556.710598, 51565.507391, 51574.304335, 51583.101430, 
   51591.898676, 51600.696074, 51609.493622, 51618.291322, 51627.089172, 51635.887174, 51644.685327, 51653.483631, 
   51662.282085, 51671.080691, 51679.879447, 51688.678355, 51697.477413, 51706.276623, 51715.075983, 51723.875494, 
   51732.675155, 51741.474968, 51750.274931, 51759.075045, 51767.875310, 51776.675725, 51785.476291, 51794.277007, 
   51803.077875, 51811.878893, 51820.680061, 51829.481380, 51838.282849, 51847.084469, 51855.886240, 51864.688161, 
   51873.490232, 51882.292454, 51891.094826, 51899.897348, 51908.700021, 51917.502844, 51926.305818, 51935.108942, 
   51943.912216, 51952.715640, 51961.519214, 51970.322939, 51979.126814, 51987.930838, 51996.735013, 52005.539339, 
   52014.343814, 52023.148439, 52031.953214, 52040.758140, 52049.563215, 52058.368440, 52067.173815, 52075.979340, 
   52084.785015, 52093.590840, 52102.396815, 52111.202939, 52120.009213, 52128.815637, 52137.622211, 52146.428935, 
   52155.235808, 52164.042831, 52172.850004, 52181.657326, 52190.464798, 52199.272419, 52208.080190, 52216.888111, 
   52225.696181, 52234.504401, 52243.312770, 52252.121289, 52260.929957, 52269.738774, 52278.547741, 52287.356857, 
   52296.166123, 52304.975538, 52313.785102, 52322.594816, 52331.404678, 52340.214690, 52349.024852, 52357.835162, 
   52366.645622, 52375.456231, 52384.266989, 52393.077896, 52401.888952, 52410.700157, 52419.511511, 52428.323014, 
   52437.134667, 52445.946468, 52454.758418, 52463.570517, 52472.382765, 52481.195162, 52490.007708, 52498.820402, 
   52507.633246, 52516.446238, 52525.259379, 52534.072669, 52542.886107, 52551.699695, 52560.513430, 52569.327315, 
   52578.141348, 52586.955530, 52595.769860, 52604.584339, 52613.398967, 52622.213743, 52631.028668, 52639.843741, 
   52648.658962, 52657.474332, 52666.289851, 52675.105518, 52683.921333, 52692.737296, 52701.553408, 52710.369668, 
   52719.186077, 52728.002634, 52736.819339, 52745.636192, 52754.453193, 52763.270343, 52772.087641, 52780.905087, 
   52789.722681, 52798.540423, 52807.358313, 52816.176351, 52824.994538, 52833.812872, 52842.631354, 52851.449984, 
   52860.268763, 52869.087689, 52877.906763, 52886.725985, 52895.545354, 52904.364872, 52913.184537, 52922.004350, 
   52930.824311, 52939.644420, 52948.464676, 52957.285080, 52966.105632, 52974.926331, 52983.747178, 52992.568173, 
   53001.389315, 53010.210605, 53019.032042, 53027.853627, 53036.675360, 53045.497240, 53054.319267, 53063.141442, 
   53071.963764, 53080.786233, 53089.608850, 53098.431615, 53107.254526, 53116.077585, 53124.900791, 53133.724145, 
   53142.547646, 53151.371294, 53160.195089, 53169.019031, 53177.843121, 53186.667357, 53195.491741, 53204.316272, 
   53213.140950, 53221.965775, 53230.790747, 53239.615866, 53248.441131, 53257.266544, 53266.092104, 53274.917811, 
   53283.743665, 53292.569665, 53301.395813, 53310.222107, 53319.048548, 53327.875136, 53336.701870, 53345.528752, 
   53354.355780, 53363.182955, 53372.010276, 53380.837744, 53389.665359, 53398.493120, 53407.321028, 53416.149083, 
   53424.977284, 53433.805631, 53442.634126, 53451.462766, 53460.291553, 53469.120487, 53477.949567, 53486.778793, 
   53495.608166, 53504.437685, 53513.267350, 53522.097162, 53530.927120, 53539.757224, 53548.587475, 53557.417872, 
   53566.248415, 53575.079104, 53583.909939, 53592.740921, 53601.572049, 53610.403322, 53619.234742, 53628.066308, 
   53636.898020, 53645.729878, 53654.561882, 53663.394032, 53672.226328, 53681.058769, 53689.891357, 53698.724091, 
   53707.556970, 53716.389995, 53725.223167, 53734.056483, 53742.889946, 53751.723555, 53760.557309, 53769.391209, 
   53778.225254, 53787.059446, 53795.893783, 53804.728265, 53813.562894, 53822.397667, 53831.232587, 53840.067652, 
   53848.902862, 53857.738218, 53866.573720, 53875.409367, 53884.245159, 53893.081097, 53901.917180, 53910.753408, 
   53919.589782, 53928.426302, 53937.262966, 53946.099776, 53954.936731, 53963.773832, 53972.611077, 53981.448468, 
   53990.286004, 53999.123685, 54007.961512, 54016.799483, 54025.637600, 54034.475862, 54043.314268, 54052.152820, 
   54060.991517, 54069.830359, 54078.669346, 54087.508477, 54096.347754, 54105.187176, 54114.026742, 54122.866453, 
   54131.706310, 54140.546311, 54149.386457, 54158.226747, 54167.067183, 54175.907763, 54184.748488, 54193.589357, 
   54202.430372, 54211.271531, 54220.112834, 54228.954283, 54237.795875, 54246.637613, 54255.479495, 54264.321521, 
   54273.163692, 54282.006008, 54290.848468, 54299.691073, 54308.533821, 54317.376715, 54326.219753, 54335.062935, 
   54343.906261, 54352.749732, 54361.593347, 54370.437106, 54379.281010, 54388.125058, 54396.969250, 54405.813586, 
   54414.658067, 54423.502692, 54432.347460, 54441.192373, 54450.037430, 54458.882631, 54467.727977, 54476.573466, 
   54485.419099, 54494.264876, 54503.110798, 54511.956863, 54520.803072, 54529.649425, 54538.495922, 54547.342563, 
   54556.189347, 54565.036276, 54573.883348, 54582.730564, 54591.577924, 54600.425428, 54609.273075, 54618.120866, 
   54626.968801, 54635.816879, 54644.665102, 54653.513467, 54662.361977, 54671.210629, 54680.059426, 54688.908366, 
   54697.757449, 54706.606676, 54715.456047, 54724.305561, 54733.155218, 54742.005019, 54750.854963, 54759.705051, 
   54768.555282, 54777.405656, 54786.256174, 54795.106835, 54803.957639, 54812.808586, 54821.659677, 54830.510911, 
   54839.362288, 54848.213808, 54857.065472, 54865.917278, 54874.769228, 54883.621321, 54892.473557, 54901.325936, 
   54910.178457, 54919.031122, 54927.883930, 54936.736881, 54945.589975, 54954.443212, 54963.296591, 54972.150114, 
   54981.003779, 54989.857588, 54998.711539, 55007.565633, 55016.419869, 55025.274249, 55034.128771, 55042.983436, 
   55051.838244, 55060.693194, 55069.548287, 55078.403523, 55087.258901, 55096.114422, 55104.970085, 55113.825891, 
   55122.681840, 55131.537931, 55140.394164, 55149.250540, 55158.107059, 55166.963720, 55175.820523, 55184.677469, 
   55193.534557, 55202.391787, 55211.249160, 55220.106675, 55228.964333, 55237.822133, 55246.680075, 55255.538159, 
   55264.396385, 55273.254754, 55282.113265, 55290.971918, 55299.830713, 55308.689650, 55317.548729, 55326.407951, 
   55335.267314, 55344.126820, 55352.986467, 55361.846257, 55370.706188, 55379.566261, 55388.426477, 55397.286834, 
   55406.147333, 55415.007974, 55423.868757, 55432.729682, 55441.590749, 55450.451957, 55459.313307, 55468.174799, 
   55477.036432, 55485.898208, 55494.760125, 55503.622183, 55512.484384, 55521.346726, 55530.209209, 55539.071834, 
   55547.934601, 55556.797509, 55565.660559, 55574.523751, 55583.387083, 55592.250558, 55601.114174, 55609.977931, 
   55618.841829, 55627.705869, 55636.570051, 55645.434373, 55654.298837, 55663.163443, 55672.028190, 55680.893077, 
   55689.758107, 55698.623277, 55707.488589, 55716.354042, 55725.219636, 55734.085371, 55742.951247, 55751.817264, 
   55760.683423, 55769.549722, 55778.416163, 55787.282745, 55796.149467, 55805.016331, 55813.883336, 55822.750481, 
   55831.617768, 55840.485195, 55849.352764, 55858.220473, 55867.088323, 55875.956314, 55884.824445, 55893.692718, 
   55902.561131, 55911.429685, 55920.298380, 55929.167216, 55938.036192, 55946.905309, 55955.774566, 55964.643964, 
   55973.513503, 55982.383182, 55991.253002, 56000.122963, 56008.993064, 56017.863305, 56026.733688, 56035.604210, 
   56044.474873, 56053.345677, 56062.216620, 56071.087705, 56079.958929, 56088.830294, 56097.701800, 56106.573445, 
   56115.445231, 56124.317158, 56133.189224, 56142.061431, 56150.933778, 56159.806265, 56168.678892, 56177.551660, 
   56186.424568, 56195.297615, 56204.170803, 56213.044131, 56221.917599, 56230.791207, 56239.664956, 56248.538844, 
   56257.412872, 56266.287040, 56275.161348, 56284.035796, 56292.910384, 56301.785112, 56310.659979, 56319.534987, 
   56328.410134, 56337.285421, 56346.160848, 56355.036415, 56363.912121, 56372.787967, 56381.663953, 56390.540079, 
   56399.416344, 56408.292749, 56417.169294, 56426.045978, 56434.922801, 56443.799765, 56452.676868, 56461.554110, 
   56470.431492, 56479.309014, 56488.186674, 56497.064475, 56505.942415, 56514.820494, 56523.698713, 56532.577071, 
   56541.455568, 56550.334205, 56559.212981, 56568.091896, 56576.970951, 56585.850145, 56594.729478, 56603.608950, 
   56612.488562, 56621.368313, 56630.248203, 56639.128232, 56648.008400, 56656.888708, 56665.769154, 56674.649740, 
   56683.530464, 56692.411328, 56701.292330, 56710.173472, 56719.054753, 56727.936172, 56736.817731, 56745.699428, 
   56754.581264, 56763.463239, 56772.345354, 56781.227606, 56790.109998, 56798.992529, 56807.875198, 56816.758006, 
   56825.640953, 56834.524038, 56843.407263, 56852.290625, 56861.174127, 56870.057767, 56878.941546, 56887.825464, 
   56896.709520, 56905.593714, 56914.478047, 56923.362519, 56932.247129, 56941.131878, 56950.016765, 56958.901791, 
   56967.786955, 56976.672258, 56985.557699, 56994.443278, 57003.328995, 57012.214851, 57021.100846, 57029.986978, 
   57038.873249, 57047.759658, 57056.646206, 57065.532892, 57074.419715, 57083.306677, 57092.193778, 57101.081016, 
   57109.968392, 57118.855907, 57127.743560, 57136.631350, 57145.519279, 57154.407346, 57163.295551, 57172.183894, 
   57181.072375, 57189.960994, 57198.849750, 57207.738645, 57216.627678, 57225.516848, 57234.406156, 57243.295602, 
   57252.185186, 57261.074908, 57269.964768, 57278.854765, 57287.744900, 57296.635173, 57305.525584, 57314.416132, 
   57323.306818, 57332.197641, 57341.088603, 57349.979702, 57358.870938, 57367.762312, 57376.653824, 57385.545473, 
   57394.437259, 57403.329183, 57412.221245, 57421.113444, 57430.005781, 57438.898255, 57447.790866, 57456.683615, 
   57465.576501, 57474.469524, 57483.362685, 57492.255983, 57501.149419, 57510.042992, 57518.936702, 57527.830549, 
   57536.724533, 57545.618655, 57554.512914, 57563.407310, 57572.301843, 57581.196513, 57590.091320, 57598.986265, 
   57607.881346, 57616.776565, 57625.671921, 57634.567413, 57643.463043, 57652.358809, 57661.254713, 57670.150754, 
   57679.046931, 57687.943245, 57696.839696, 57705.736285, 57714.633009, 57723.529871, 57732.426870, 57741.324005, 
   57750.221277, 57759.118686, 57768.016232, 57776.913914, 57785.811733, 57794.709689, 57803.607781, 57812.506010, 
   57821.404376, 57830.302878, 57839.201517, 57848.100292, 57856.999204, 57865.898252, 57874.797437, 57883.696759, 
   57892.596217, 57901.495811, 57910.395542, 57919.295409, 57928.195413, 57937.095553, 57945.995829, 57954.896242, 
   57963.796791, 57972.697476, 57981.598298, 57990.499255, 57999.400350, 58008.301580, 58017.202946, 58026.104449, 
   58035.006088, 58043.907863, 58052.809774, 58061.711822, 58070.614005, 58079.516325, 58088.418780, 58097.321372, 
   58106.224100, 58115.126963, 58124.029963, 58132.933099, 58141.836370, 58150.739778, 58159.643321, 58168.547001, 
   58177.450816, 58186.354767, 58195.258854, 58204.163076, 58213.067435, 58221.971929, 58230.876559, 58239.781325, 
   58248.686227, 58257.591264, 58266.496437, 58275.401746, 58284.307190, 58293.212770, 58302.118486, 58311.024337, 
   58319.930324, 58328.836446, 58337.742704, 58346.649097, 58355.555626, 58364.462291, 58373.369090, 58382.276026, 
   58391.183097, 58400.090303, 58408.997644, 58417.905121, 58426.812734, 58435.720481, 58444.628364, 58453.536383, 
   58462.444536, 58471.352825, 58480.261249, 58489.169809, 58498.078503, 58506.987333, 58515.896298, 58524.805398, 
   58533.714633, 58542.624004, 58551.533509, 58560.443150, 58569.352926, 58578.262836, 58587.172882, 58596.083063, 
   58604.993379, 58613.903829, 58622.814415, 58631.725136, 58640.635991, 58649.546982, 58658.458107, 58667.369368, 
   58676.280763, 58685.192293, 58694.103957, 58703.015757, 58711.927691, 58720.839760, 58729.751964, 58738.664303, 
   58747.576776, 58756.489384, 58765.402127, 58774.315004, 58783.228016, 58792.141162, 58801.054444, 58809.967859, 
   58818.881410, 58827.795094, 58836.708914, 58845.622868, 58854.536956, 58863.451179, 58872.365536, 58881.280028, 
   58890.194654, 58899.109414, 58908.024309, 58916.939339, 58925.854502, 58934.769800, 58943.685232, 58952.600799, 
   58961.516500, 58970.432335, 58979.348304, 58988.264408, 58997.180645, 59006.097017, 59015.013523, 59023.930164, 
   59032.846938, 59041.763846, 59050.680889, 59059.598066, 59068.515376, 59077.432821, 59086.350400, 59095.268113, 
   59104.185959, 59113.103940, 59122.022055, 59130.940303, 59139.858686, 59148.777202, 59157.695852, 59166.614637, 
   59175.533555, 59184.452606, 59193.371792, 59202.291111, 59211.210565, 59220.130151, 59229.049872, 59237.969726, 
   59246.889715, 59255.809836, 59264.730092, 59273.650481, 59282.571003, 59291.491660, 59300.412450, 59309.333373, 
   59318.254430, 59327.175621, 59336.096945, 59345.018402, 59353.939993, 59362.861718, 59371.783576, 59380.705567, 
   59389.627692, 59398.549950, 59407.472342, 59416.394867, 59425.317525, 59434.240317, 59443.163242, 59452.086300, 
   59461.009491, 59469.932816, 59478.856274, 59487.779865, 59496.703590, 59505.627447, 59514.551438, 59523.475562, 
   59532.399819, 59541.324209, 59550.248732, 59559.173389, 59568.098178, 59577.023100, 59585.948156, 59594.873344, 
   59603.798666, 59612.724120, 59621.649707, 59630.575428, 59639.501281, 59648.427267, 59657.353386, 59666.279638, 
   59675.206023, 59684.132540, 59693.059190, 59701.985973, 59710.912889, 59719.839938, 59728.767119, 59737.694433, 
   59746.621880, 59755.549460, 59764.477172, 59773.405017, 59782.332994, 59791.261104, 59800.189347, 59809.117722, 
   59818.046230, 59826.974870, 59835.903643, 59844.832549, 59853.761587, 59862.690757, 59871.620060, 59880.549495, 
   59889.479063, 59898.408763, 59907.338596, 59916.268560, 59925.198658, 59934.128887, 59943.059249, 59951.989743, 
   59960.920370, 59969.851128, 59978.782019, 59987.713043, 59996.644198, 60005.575486, 60014.506906, 60023.438458, 
   60032.370142, 60041.301958, 60050.233906, 60059.165987, 60068.098199, 60077.030544, 60085.963020, 60094.895629, 
   60103.828370, 60112.761242, 60121.694247, 60130.627383, 60139.560652, 60148.494052, 60157.427585, 60166.361249, 
   60175.295045, 60184.228973, 60193.163032, 60202.097224, 60211.031547, 60219.966002, 60228.900589, 60237.835308, 
   60246.770158, 60255.705140, 60264.640254, 60273.575499, 60282.510876, 60291.446385, 60300.382025, 60309.317797, 
   60318.253701, 60327.189736, 60336.125903, 60345.062201, 60353.998631, 60362.935192, 60371.871884, 60380.808709, 
   60389.745664, 60398.682751, 60407.619970, 60416.557320, 60425.494801, 60434.432413, 60443.370157, 60452.308033, 
   60461.246039, 60470.184177, 60479.122446, 60488.060847, 60496.999378, 60505.938041, 60514.876835, 60523.815760, 
   60532.754817, 60541.694005, 60550.633323, 60559.572773, 60568.512354, 60577.452066, 60586.391909, 60595.331883, 
   60604.271989, 60613.212225, 60622.152592, 60631.093090, 60640.033720, 60648.974480, 60657.915371, 60666.856393, 
   60675.797546, 60684.738829, 60693.680244, 60702.621789, 60711.563466, 60720.505273, 60729.447211, 60738.389279, 
   60747.331479, 60756.273809, 60765.216270, 60774.158862, 60783.101584, 60792.044437, 60800.987421, 60809.930535, 
   60818.873780, 60827.817155, 60836.760662, 60845.704298, 60854.648066, 60863.591963, 60872.535992, 60881.480151, 
   60890.424440, 60899.368860, 60908.313410, 60917.258091, 60926.202902, 60935.147843, 60944.092915, 60953.038117, 
   60961.983450, 60970.928913, 60979.874506, 60988.820230, 60997.766084, 61006.712068, 61015.658182, 61024.604427, 
   61033.550802, 61042.497307, 61051.443942, 61060.390707, 61069.337603, 61078.284628, 61087.231784, 61096.179070, 
   61105.126486, 61114.074032, 61123.021708, 61131.969514, 61140.917450, 61149.865516, 61158.813712, 61167.762038, 
   61176.710494, 61185.659080, 61194.607796, 61203.556642, 61212.505618, 61221.454723, 61230.403958, 61239.353323, 
   61248.302818, 61257.252443, 61266.202198, 61275.152082, 61284.102096, 61293.052240, 61302.002513, 61310.952916, 
   61319.903449, 61328.854112, 61337.804904, 61346.755826, 61355.706877, 61364.658058, 61373.609369, 61382.560809, 
   61391.512378, 61400.464077, 61409.415906, 61418.367864, 61427.319952, 61436.272169, 61445.224516, 61454.176992, 
   61463.129597, 61472.082332, 61481.035196, 61489.988189, 61498.941312, 61507.894564, 61516.847946, 61525.801457, 
   61534.755097, 61543.708866, 61552.662764, 61561.616792, 61570.570949, 61579.525235, 61588.479651, 61597.434195, 
   61606.388869, 61615.343672, 61624.298603, 61633.253664, 61642.208854, 61651.164173, 61660.119622, 61669.075199, 
   61678.030905, 61686.986740, 61695.942704, 61704.898797, 61713.855019, 61722.811370, 61731.767850, 61740.724459, 
   61749.681196, 61758.638063, 61767.595058, 61776.552182, 61785.509435, 61794.466817, 61803.424327, 61812.381967, 
   61821.339735, 61830.297631, 61839.255657, 61848.213811, 61857.172094, 61866.130505, 61875.089045, 61884.047714, 
   61893.006512, 61901.965437, 61910.924492, 61919.883675, 61928.842987, 61937.802427, 61946.761995, 61955.721693, 
   61964.681518, 61973.641472, 61982.601555, 61991.561766, 62000.522105, 62009.482573, 62018.443169, 62027.403894, 
   62036.364746, 62045.325728, 62054.286837, 62063.248075, 62072.209441, 62081.170935, 62090.132558, 62099.094309, 
   62108.056188, 62117.018195, 62125.980330, 62134.942594, 62143.904985, 62152.867505, 62161.830153, 62170.792929, 
   62179.755833, 62188.718866, 62197.682026, 62206.645314, 62215.608730, 62224.572275, 62233.535947, 62242.499747, 
   62251.463675, 62260.427732, 62269.391916, 62278.356228, 62287.320667, 62296.285235, 62305.249931, 62314.214754, 
   62323.179705, 62332.144784, 62341.109991, 62350.075326, 62359.040788, 62368.006378, 62376.972096, 62385.937941, 
   62394.903915, 62403.870015, 62412.836244, 62421.802600, 62430.769084, 62439.735695, 62448.702434, 62457.669301, 
   62466.636295, 62475.603416, 62484.570666, 62493.538042, 62502.505547, 62511.473178, 62520.440937, 62529.408824, 
   62538.376838, 62547.344979, 62556.313248, 62565.281644, 62574.250168, 62583.218819, 62592.187597, 62601.156503, 
   62610.125535, 62619.094696, 62628.063983, 62637.033398, 62646.002940, 62654.972609, 62663.942405, 62672.912328, 
   62681.882379, 62690.852557, 62699.822862, 62708.793294, 62717.763853, 62726.734539, 62735.705353, 62744.676293, 
   62753.647361, 62762.618555, 62771.589876, 62780.561325, 62789.532900, 62798.504603, 62807.476432, 62816.448388, 
   62825.420472, 62834.392682, 62843.365019, 62852.337482, 62861.310073, 62870.282791, 62879.255635, 62888.228606, 
   62897.201704, 62906.174929, 62915.148280, 62924.121758, 62933.095363, 62942.069095, 62951.042953, 62960.016938, 
   62968.991049, 62977.965288, 62986.939652, 62995.914144, 63004.888762, 63013.863507, 63022.838378, 63031.813375, 
   63040.788500, 63049.763750, 63058.739128, 63067.714631, 63076.690262, 63085.666018, 63094.641901, 63103.617911, 
   63112.594047, 63121.570309, 63130.546697, 63139.523212, 63148.499854, 63157.476621, 63166.453515, 63175.430535, 
   63184.407682, 63193.384955, 63202.362354, 63211.339879, 63220.317530, 63229.295308, 63238.273212, 63247.251242, 
   63256.229398, 63265.207680, 63274.186088, 63283.164623, 63292.143283, 63301.122070, 63310.100982, 63319.080021, 
   63328.059186, 63337.038476, 63346.017893, 63354.997435, 63363.977104, 63372.956898, 63381.936819, 63390.916865, 
   63399.897037, 63408.877335, 63417.857759, 63426.838309, 63435.818985, 63444.799786, 63453.780713, 63462.761766, 
   63471.742945, 63480.724250, 63489.705680, 63498.687236, 63507.668917, 63516.650725, 63525.632658, 63534.614716, 
   63543.596901, 63552.579211, 63561.561646, 63570.544207, 63579.526894, 63588.509706, 63597.492644, 63606.475707, 
   63615.458896, 63624.442210, 63633.425650, 63642.409215, 63651.392906, 63660.376722, 63669.360664, 63678.344730, 
   63687.328923, 63696.313240, 63705.297684, 63714.282252, 63723.266946, 63732.251765, 63741.236709, 63750.221778, 
   63759.206973, 63768.192293, 63777.177739, 63786.163309, 63795.149005, 63804.134826, 63813.120772, 63822.106843, 
   63831.093039, 63840.079361, 63849.065807, 63858.052379, 63867.039075, 63876.025897, 63885.012844, 63893.999916, 
   63902.987113, 63911.974434, 63920.961881, 63929.949453, 63938.937150, 63947.924971, 63956.912918, 63965.900989, 
   63974.889186, 63983.877507, 63992.865953, 64001.854524, 64010.843219, 64019.832040, 64028.820985, 64037.810055, 
   64046.799250, 64055.788570, 64064.778014, 64073.767583, 64082.757277, 64091.747095, 64100.737038, 64109.727106, 
   64118.717298, 64127.707615, 64136.698057, 64145.688623, 64154.679313, 64163.670129, 64172.661069, 64181.652133, 
   64190.643322, 64199.634635, 64208.626073, 64217.617635, 64226.609322, 64235.601133, 64244.593069, 64253.585129, 
   64262.577313, 64271.569622, 64280.562055, 64289.554612, 64298.547294, 64307.540100, 64316.533030, 64325.526085, 
   64334.519264, 64343.512567, 64352.505994, 64361.499546, 64370.493222, 64379.487022, 64388.480946, 64397.474994, 
   64406.469167, 64415.463463, 64424.457884, 64433.452429, 64442.447097, 64451.441890, 64460.436807, 64469.431848, 
   64478.427013, 64487.422302, 64496.417715, 64505.413252, 64514.408913, 64523.404698, 64532.400607, 64541.396639, 
   64550.392796, 64559.389076, 64568.385481, 64577.382009, 64586.378661, 64595.375437, 64604.372336, 64613.369360, 
   64622.366507, 64631.363778, 64640.361172, 64649.358691, 64658.356333, 64667.354098, 64676.351988, 64685.350001, 
   64694.348138, 64703.346398, 64712.344782, 64721.343290, 64730.341921, 64739.340676, 64748.339554, 64757.338556, 
   64766.337681, 64775.336930, 64784.336303, 64793.335799, 64802.335418, 64811.335161, 64820.335027, 64829.335016, 
   64838.335130, 64847.335366, 64856.335726, 64865.336209, 64874.336815, 64883.337545, 64892.338398, 64901.339375, 
   64910.340475, 64919.341698, 64928.343044, 64937.344513, 64946.346106, 64955.347822, 64964.349661, 64973.351623, 
   64982.353709, 64991.355917, 65000.358249, 65009.360704, 65018.363282, 65027.365983, 65036.368807, 65045.371754, 
   65054.374824, 65063.378017, 65072.381334, 65081.384773, 65090.388335, 65099.392020, 65108.395828, 65117.399759, 
   65126.403813, 65135.407990, 65144.412290, 65153.416712, 65162.421258, 65171.425926, 65180.430717, 65189.435631, 
   65198.440668, 65207.445827, 65216.451110, 65225.456515, 65234.462042, 65243.467693, 65252.473466, 65261.479362, 
   65270.485381, 65279.491522, 65288.497786, 65297.504172, 65306.510681, 65315.517313, 65324.524067, 65333.530944, 
   65342.537944, 65351.545066, 65360.552310, 65369.559677, 65378.567167, 65387.574779, 65396.582513, 65405.590370, 
   65414.598350, 65423.606451, 65432.614676, 65441.623022, 65450.631491, 65459.640082, 65468.648796, 65477.657632, 
   65486.666590, 65495.675671, 65504.684874, 65513.694199, 65522.703647, 65531.713216, 65540.722908, 65549.732722, 
   65558.742659, 65567.752717, 65576.762898, 65585.773200, 65594.783625, 65603.794172, 65612.804842, 65621.815633, 
   65630.826546, 65639.837582, 65648.848739, 65657.860019, 65666.871420, 65675.882944, 65684.894589, 65693.906357, 
   65702.918246, 65711.930257, 65720.942391, 65729.954646, 65738.967023, 65747.979522, 65756.992143, 65766.004886, 
   65775.017750, 65784.030737, 65793.043845, 65802.057075, 65811.070427, 65820.083900, 65829.097495, 65838.111213, 
   65847.125051, 65856.139012, 65865.153094, 65874.167298, 65883.181623, 65892.196070, 65901.210639, 65910.225329, 
   65919.240141, 65928.255075, 65937.270130, 65946.285307, 65955.300605, 65964.316025, 65973.331566, 65982.347229, 
   65991.363013, 66000.378919, 66009.394946, 66018.411095, 66027.427365, 66036.443756, 66045.460269, 66054.476904, 
   66063.493659, 66072.510536, 66081.527534, 66090.544654, 66099.561895, 66108.579257, 66117.596741, 66126.614346, 
   66135.632072, 66144.649919, 66153.667887, 66162.685977, 66171.704188, 66180.722520, 66189.740973, 66198.759548, 
   66207.778243, 66216.797060, 66225.815997, 66234.835056, 66243.854236, 66252.873537, 66261.892959, 66270.912502, 
   66279.932166, 66288.951951, 66297.971857, 66306.991884, 66316.012032, 66325.032301, 66334.052690, 66343.073201, 
   66352.093833, 66361.114585, 66370.135459, 66379.156453, 66388.177568, 66397.198804, 66406.220160, 66415.241638, 
   66424.263236, 66433.284955, 66442.306795, 66451.328755, 66460.350837, 66469.373038, 66478.395361, 66487.417804, 
   66496.440368, 66505.463053, 66514.485858, 66523.508784, 66532.531831, 66541.554998, 66550.578285, 66559.601693, 
   66568.625222, 66577.648871, 66586.672641, 66595.696532, 66604.720542, 66613.744674, 66622.768925, 66631.793298, 
   66640.817790, 66649.842403, 66658.867137, 66667.891990, 66676.916965, 66685.942059, 66694.967274, 66703.992609, 
   66713.018065, 66722.043641, 66731.069337, 66740.095153, 66749.121090, 66758.147147, 66767.173324, 66776.199621, 
   66785.226039, 66794.252576, 66803.279234, 66812.306012, 66821.332911, 66830.359929, 66839.387067, 66848.414326, 
   66857.441704, 66866.469203, 66875.496822, 66884.524561, 66893.552419, 66902.580398, 66911.608497, 66920.636716, 
   66929.665055, 66938.693513, 66947.722092, 66956.750791, 66965.779609, 66974.808547, 66983.837606, 66992.866784, 
   67001.896082, 67010.925500, 67019.955037, 67028.984695, 67038.014472, 67047.044369, 67056.074386, 67065.104522, 
   67074.134779, 67083.165155, 67092.195651, 67101.226266, 67110.257001, 67119.287856, 67128.318830, 67137.349924, 
   67146.381138, 67155.412471, 67164.443924, 67173.475497, 67182.507189, 67191.539001, 67200.570932, 67209.602982, 
   67218.635153, 67227.667442, 67236.699851, 67245.732380, 67254.765028, 67263.797796, 67272.830683, 67281.863689, 
   67290.896815, 67299.930060, 67308.963424, 67317.996908, 67327.030511, 67336.064234, 67345.098076, 67354.132037, 
   67363.166117, 67372.200317, 67381.234636, 67390.269074, 67399.303631, 67408.338308, 67417.373104, 67426.408019, 
   67435.443053, 67444.478206, 67453.513479, 67462.548870, 67471.584381, 67480.620011, 67489.655760, 67498.691628, 
   67507.727615, 67516.763721, 67525.799946, 67534.836290, 67543.872753, 67552.909335, 67561.946036, 67570.982856, 
   67580.019795, 67589.056853, 67598.094029, 67607.131325, 67616.168739, 67625.206273, 67634.243925, 67643.281696, 
   67652.319586, 67661.357595, 67670.395722, 67679.433969, 67688.472334, 67697.510818, 67706.549420, 67715.588142, 
   67724.626982, 67733.665941, 67742.705018, 67751.744214, 67760.783529, 67769.822962, 67778.862514, 67787.902185, 
   67796.941974, 67805.981882, 67815.021909, 67824.062054, 67833.102317, 67842.142699, 67851.183200, 67860.223819, 
   67869.264556, 67878.305413, 67887.346387, 67896.387480, 67905.428691, 67914.470021, 67923.511469, 67932.553036, 
   67941.594721, 67950.636525, 67959.678446, 67968.720486, 67977.762645, 67986.804921, 67995.847316, 68004.889830, 
   68013.932461, 68022.975211, 68032.018079, 68041.061065, 68050.104170, 68059.147392, 68068.190733, 68077.234192, 
   68086.277769, 68095.321465, 68104.365278, 68113.409209, 68122.453259, 68131.497427, 68140.541713, 68149.586116, 
   68158.630638, 68167.675278, 68176.720036, 68185.764912, 68194.809906, 68203.855018, 68212.900248, 68221.945596, 
   68230.991061, 68240.036645, 68249.082347, 68258.128166, 68267.174103, 68276.220158, 68285.266331, 68294.312622, 
   68303.359031, 68312.405558, 68321.452202, 68330.498964, 68339.545844, 68348.592841, 68357.639957, 68366.687190, 
   68375.734540, 68384.782009, 68393.829595, 68402.877299, 68411.925120, 68420.973059, 68430.021116, 68439.069290, 
   68448.117582, 68457.165992, 68466.214519, 68475.263163, 68484.311926, 68493.360805, 68502.409802, 68511.458917, 
   68520.508149, 68529.557499, 68538.606966, 68547.656551, 68556.706253, 68565.756072, 68574.806009, 68583.856063, 
   68592.906235, 68601.956524, 68611.006930, 68620.057454, 68629.108095, 68638.158853, 68647.209729, 68656.260722, 
   68665.311832, 68674.363059, 68683.414404, 68692.465866, 68701.517445, 68710.569141, 68719.620955, 68728.672885, 
   68737.724933, 68746.777098, 68755.829380, 68764.881779, 68773.934296, 68782.986929, 68792.039679, 68801.092547, 
   68810.145531, 68819.198633, 68828.251852, 68837.305187, 68846.358640, 68855.412210, 68864.465896, 68873.519700, 
   68882.573620, 68891.627657, 68900.681812, 68909.736083, 68918.790471, 68927.844976, 68936.899598, 68945.954336, 
   68955.009192, 68964.064164, 68973.119253, 68982.174459, 68991.229782, 69000.285221, 69009.340777, 69018.396450, 
   69027.452240, 69036.508146, 69045.564169, 69054.620309, 69063.676565, 69072.732938, 69081.789428, 69090.846034, 
   69099.902757, 69108.959596, 69118.016553, 69127.073625, 69136.130814, 69145.188120, 69154.245542, 69163.303081, 
   69172.360736, 69181.418508, 69190.476396, 69199.534401, 69208.592522, 69217.650760, 69226.709114, 69235.767584, 
   69244.826171, 69253.884874, 69262.943694, 69272.002630, 69281.061682, 69290.120851, 69299.180136, 69308.239537, 
   69317.299054, 69326.358688, 69335.418438, 69344.478304, 69353.538287, 69362.598385, 69371.658600, 69380.718931, 
   69389.779379, 69398.839942, 69407.900622, 69416.961418, 69426.022329, 69435.083357, 69444.144501, 69453.205762, 
   69462.267138, 69471.328630, 69480.390238, 69489.451963, 69498.513803, 69507.575759, 69516.637832, 69525.700020, 
   69534.762324, 69543.824745, 69552.887281, 69561.949933, 69571.012701, 69580.075585, 69589.138585, 69598.201700, 
   69607.264932, 69616.328279, 69625.391742, 69634.455321, 69643.519016, 69652.582827, 69661.646753, 69670.710795, 
   69679.774953, 69688.839227, 69697.903616, 69706.968121, 69716.032742, 69725.097478, 69734.162330, 69743.227298, 
   69752.292381, 69761.357580, 69770.422895, 69779.488325, 69788.553871, 69797.619532, 69806.685309, 69815.751202, 
   69824.817210, 69833.883333, 69842.949572, 69852.015927, 69861.082397, 69870.148982, 69879.215683, 69888.282499, 
   69897.349431, 69906.416478, 69915.483641, 69924.550919, 69933.618312, 69942.685821, 69951.753445, 69960.821185, 
   69969.889039, 69978.957009, 69988.025095, 69997.093295, 70006.161611, 70015.230042, 70024.298589, 70033.367250, 
   70042.436027, 70051.504919, 70060.573926, 70069.643049, 70078.712286, 70087.781639, 70096.851107, 70105.920690, 
   70114.990388, 70124.060201, 70133.130129, 70142.200172, 70151.270331, 70160.340604, 70169.410992, 70178.481496, 
   70187.552114, 70196.622848, 70205.693696, 70214.764659, 70223.835738, 70232.906931, 70241.978239, 70251.049662, 
   70260.121200, 70269.192853, 70278.264621, 70287.336503, 70296.408501, 70305.480613, 70314.552840, 70323.625182, 
   70332.697639, 70341.770210, 70350.842896, 70359.915697, 70368.988613, 70378.061643, 70387.134788, 70396.208048, 
   70405.281423, 70414.354912, 70423.428516, 70432.502234, 70441.576067, 70450.650015, 70459.724078, 70468.798254, 
   70477.872546, 70486.946952, 70496.021473, 70505.096108, 70514.170858, 70523.245722, 70532.320701, 70541.395794, 
   70550.471002, 70559.546324, 70568.621760, 70577.697311, 70586.772977, 70595.848757, 70604.924651, 70614.000660, 
   70623.076783, 70632.153020, 70641.229372, 70650.305838, 70659.382418, 70668.459113, 70677.535922, 70686.612845, 
   70695.689883, 70704.767034, 70713.844300, 70722.921681, 70731.999175, 70741.076784, 70750.154507, 70759.232344, 
   70768.310295, 70777.388360, 70786.466540, 70795.544833, 70804.623241, 70813.701763, 70822.780399, 70831.859149, 
   70840.938013, 70850.016991, 70859.096083, 70868.175289, 70877.254609, 70886.334043, 70895.413591, 70904.493253, 
   70913.573029, 70922.652919, 70931.732923, 70940.813041, 70949.893272, 70958.973618, 70968.054077, 70977.134651, 
   70986.215338, 70995.296139, 71004.377054, 71013.458082, 71022.539225, 71031.620481, 71040.701851, 71049.783335, 
   71058.864932, 71067.946644, 71077.028469, 71086.110407, 71095.192460, 71104.274626, 71113.356905, 71122.439299, 
   71131.521806, 71140.604426, 71149.687160, 71158.770008, 71167.852970, 71176.936045, 71186.019233, 71195.102536, 
   71204.185951, 71213.269480, 71222.353123, 71231.436879, 71240.520749, 71249.604732, 71258.688829, 71267.773039, 
   71276.857363, 71285.941799, 71295.026350, 71304.111014, 71313.195791, 71322.280681, 71331.365685, 71340.450802, 
   71349.536033, 71358.621377, 71367.706834, 71376.792404, 71385.878088, 71394.963885, 71404.049796, 71413.135819, 
   71422.221956, 71431.308206, 71440.394569, 71449.481045, 71458.567635, 71467.654338, 71476.741154, 71485.828083, 
   71494.915125, 71504.002280, 71513.089548, 71522.176930, 71531.264424, 71540.352032, 71549.439753, 71558.527586, 
   71567.615533, 71576.703593, 71585.791766, 71594.880051, 71603.968450, 71613.056962, 71622.145586, 71631.234324, 
   71640.323174, 71649.412138, 71658.501214, 71667.590403, 71676.679705, 71685.769120, 71694.858648, 71703.948288, 
   71713.038042, 71722.127908, 71731.217887, 71740.307979, 71749.398184, 71758.488501, 71767.578931, 71776.669474, 
   71785.760129, 71794.850897, 71803.941778, 71813.032772, 71822.123878, 71831.215097, 71840.306429, 71849.397873, 
   71858.489430, 71867.581099, 71876.672881, 71885.764776, 71894.856783, 71903.948903, 71913.041135, 71922.133480, 
   71931.225937, 71940.318507, 71949.411190, 71958.503984, 71967.596892, 71976.689911, 71985.783043, 71994.876288, 
   72003.969645, 72013.063115, 72022.156696, 72031.250391, 72040.344197, 72049.438116, 72058.532147, 72067.626291, 
   72076.720547, 72085.814915, 72094.909395, 72104.003988, 72113.098693, 72122.193510, 72131.288440, 72140.383482, 
   72149.478636, 72158.573902, 72167.669280, 72176.764771, 72185.860373, 72194.956088, 72204.051915, 72213.147854, 
   72222.243906, 72231.340069, 72240.436344, 72249.532732, 72258.629231, 72267.725843, 72276.822567, 72285.919402, 
   72295.016350, 72304.113410, 72313.210581, 72322.307865, 72331.405261, 72340.502768, 72349.600388, 72358.698119, 
   72367.795962, 72376.893918, 72385.991985, 72395.090164, 72404.188455, 72413.286857, 72422.385372, 72431.483998, 
   72440.582737, 72449.681587, 72458.780548, 72467.879622, 72476.978807, 72486.078104, 72495.177513, 72504.277034, 
   72513.376666, 72522.476410, 72531.576265, 72540.676233, 72549.776312, 72558.876502, 72567.976805, 72577.077219, 
   72586.177744, 72595.278381, 72604.379130, 72613.479990, 72622.580962, 72631.682045, 72640.783240, 72649.884547, 
   72658.985965, 72668.087494, 72677.189135, 72686.290888, 72695.392751, 72704.494727, 72713.596814, 72722.699012, 
   72731.801321, 72740.903742, 72750.006275, 72759.108919, 72768.211674, 72777.314540, 72786.417518, 72795.520607, 
   72804.623808, 72813.727120, 72822.830543, 72831.934077, 72841.037723, 72850.141480, 72859.245348, 72868.349327, 
   72877.453418, 72886.557619, 72895.661932, 72904.766357, 72913.870892, 72922.975538, 72932.080296, 72941.185165, 
   72950.290145, 72959.395236, 72968.500438, 72977.605751, 72986.711175, 72995.816710, 73004.922356, 73014.028114, 
   73023.133982, 73032.239962, 73041.346052, 73050.452253, 73059.558566, 73068.664989, 73077.771523, 73086.878168, 
   73095.984924, 73105.091791, 73114.198769, 73123.305858, 73132.413057, 73141.520368, 73150.627789, 73159.735321, 
   73168.842964, 73177.950718, 73187.058583, 73196.166558, 73205.274644, 73214.382841, 73223.491149, 73232.599567, 
   73241.708096, 73250.816736, 73259.925486, 73269.034348, 73278.143320, 73287.252402, 73296.361595, 73305.470899, 
   73314.580314, 73323.689839, 73332.799474, 73341.909221, 73351.019077, 73360.129045, 73369.239123, 73378.349311, 
   73387.459610, 73396.570020, 73405.680540, 73414.791170, 73423.901911, 73433.012763, 73442.123725, 73451.234797, 
   73460.345980, 73469.457273, 73478.568677, 73487.680191, 73496.791815, 73505.903550, 73515.015395, 73524.127351, 
   73533.239416, 73542.351592, 73551.463879, 73560.576276, 73569.688783, 73578.801400, 73587.914127, 73597.026965, 
   73606.139913, 73615.252972, 73624.366140, 73633.479419, 73642.592808, 73651.706307, 73660.819916, 73669.933635, 
   73679.047465, 73688.161404, 73697.275454, 73706.389614, 73715.503884, 73724.618264, 73733.732754, 73742.847354, 
   73751.962064, 73761.076884, 73770.191814, 73779.306854, 73788.422005, 73797.537265, 73806.652635, 73815.768115, 
   73824.883705, 73833.999405, 73843.115215, 73852.231135, 73861.347164, 73870.463304, 73879.579553, 73888.695913, 
   73897.812382, 73906.928961, 73916.045650, 73925.162448, 73934.279357, 73943.396375, 73952.513503, 73961.630741, 
   73970.748088, 73979.865545, 73988.983112, 73998.100789, 74007.218575, 74016.336472, 74025.454477, 74034.572593, 
   74043.690818, 74052.809153, 74061.927597, 74071.046151, 74080.164814, 74089.283588, 74098.402470, 74107.521463, 
   74116.640565, 74125.759776, 74134.879097, 74143.998528, 74153.118068, 74162.237717, 74171.357476, 74180.477344, 
   74189.597322, 74198.717410, 74207.837607, 74216.957913, 74226.078329, 74235.198854, 74244.319488, 74253.440232, 
   74262.561085, 74271.682048, 74280.803120, 74289.924301, 74299.045591, 74308.166991, 74317.288500, 74326.410119, 
   74335.531847, 74344.653684, 74353.775630, 74362.897685, 74372.019850, 74381.142124, 74390.264507, 74399.386999, 
   74408.509601, 74417.632311, 74426.755131, 74435.878060, 74445.001098, 74454.124245, 74463.247501, 74472.370867, 
   74481.494341, 74490.617925, 74499.741617, 74508.865419, 74517.989330, 74527.113349, 74536.237478, 74545.361716, 
   74554.486062, 74563.610518, 74572.735082, 74581.859756, 74590.984538, 74600.109430, 74609.234430, 74618.359539, 
   74627.484758, 74636.610085, 74645.735520, 74654.861065, 74663.986719, 74673.112481, 74682.238352, 74691.364332, 
   74700.490421, 74709.616619, 74718.742925, 74727.869340, 74736.995864, 74746.122497, 74755.249238, 74764.376088, 
   74773.503047, 74782.630114, 74791.757290, 74800.884575, 74810.011969, 74819.139471, 74828.267082, 74837.394801, 
   74846.522629, 74855.650565, 74864.778611, 74873.906764, 74883.035026, 74892.163397, 74901.291877, 74910.420465, 
   74919.549161, 74928.677966, 74937.806879, 74946.935901, 74956.065031, 74965.194270, 74974.323617, 74983.453073, 
   74992.582637, 75001.712309, 75010.842090, 75019.971980, 75029.101977, 75038.232083, 75047.362298, 75056.492620, 
   75065.623051, 75074.753590, 75083.884238, 75093.014994, 75102.145858, 75111.276831, 75120.407911, 75129.539100, 
   75138.670397, 75147.801803, 75156.933316, 75166.064938, 75175.196668, 75184.328506, 75193.460453, 75202.592507, 
   75211.724670, 75220.856940, 75229.989319, 75239.121806, 75248.254401, 75257.387104, 75266.519915, 75275.652835, 
   75284.785862, 75293.918997, 75303.052240, 75312.185592, 75321.319051, 75330.452618, 75339.586294, 75348.720077, 
   75357.853968, 75366.987967, 75376.122074, 75385.256289, 75394.390612, 75403.525043, 75412.659582, 75421.794228, 
   75430.928983, 75440.063845, 75449.198815, 75458.333893, 75467.469078, 75476.604372, 75485.739773, 75494.875282, 
   75504.010899, 75513.146624, 75522.282456, 75531.418396, 75540.554444, 75549.690599, 75558.826863, 75567.963233, 
   75577.099712, 75586.236298, 75595.372992, 75604.509793, 75613.646702, 75622.783719, 75631.920843, 75641.058075, 
   75650.195415, 75659.332862, 75668.470417, 75677.608079, 75686.745848, 75695.883726, 75705.021710, 75714.159802, 
   75723.298002, 75732.436309, 75741.574724, 75750.713246, 75759.851876, 75768.990613, 75778.129457, 75787.268409, 
   75796.407468, 75805.546634, 75814.685908, 75823.825290, 75832.964778, 75842.104374, 75851.244077, 75860.383888, 
   75869.523806, 75878.663831, 75887.803964, 75896.944203, 75906.084550, 75915.225005, 75924.365566, 75933.506235, 
   75942.647011, 75951.787894, 75960.928884, 75970.069982, 75979.211186, 75988.352498, 75997.493917, 76006.635443, 
   76015.777076, 76024.918816, 76034.060664, 76043.202618, 76052.344680, 76061.486848, 76070.629124, 76079.771507, 
   76088.913996, 76098.056593, 76107.199297, 76116.342108, 76125.485025, 76134.628050, 76143.771182, 76152.914420, 
   76162.057766, 76171.201218, 76180.344777, 76189.488444, 76198.632217, 76207.776097, 76216.920084, 76226.064177, 
   76235.208378, 76244.352685, 76253.497100, 76262.641621, 76271.786248, 76280.930983, 76290.075824, 76299.220773, 
   76308.365828, 76317.510989, 76326.656258, 76335.801633, 76344.947114, 76354.092703, 76363.238398, 76372.384200, 
   76381.530108, 76390.676124, 76399.822245, 76408.968474, 76418.114809, 76427.261251, 76436.407799, 76445.554454, 
   76454.701215, 76463.848083, 76472.995057, 76482.142138, 76491.289326, 76500.436620, 76509.584021, 76518.731528, 
   76527.879141, 76537.026861, 76546.174688, 76555.322621, 76564.470660, 76573.618806, 76582.767058, 76591.915417, 
   76601.063882, 76610.212453, 76619.361131, 76628.509915, 76637.658805, 76646.807802, 76655.956905, 76665.106114, 
   76674.255430, 76683.404852, 76692.554380, 76701.704015, 76710.853755, 76720.003602, 76729.153556, 76738.303615, 
   76747.453781, 76756.604052, 76765.754431, 76774.904915, 76784.055505, 76793.206202, 76802.357004, 76811.507913, 
   76820.658928, 76829.810049, 76838.961276, 76848.112609, 76857.264049, 76866.415594, 76875.567245, 76884.719003, 
   76893.870866, 76903.022836, 76912.174911, 76921.327092, 76930.479380, 76939.631773, 76948.784273, 76957.936878, 
   76967.089589, 76976.242406, 76985.395330, 76994.548359, 77003.701493, 77012.854734, 77022.008081, 77031.161533, 
   77040.315092, 77049.468756, 77058.622526, 77067.776402, 77076.930383, 77086.084471, 77095.238664, 77104.392963, 
   77113.547368, 77122.701878, 77131.856495, 77141.011216, 77150.166044, 77159.320977, 77168.476017, 77177.631161, 
   77186.786412, 77195.941768, 77205.097229, 77214.252797, 77223.408470, 77232.564248, 77241.720133, 77250.876122, 
   77260.032218, 77269.188419, 77278.344725, 77287.501137, 77296.657655, 77305.814278, 77314.971006, 77324.127840, 
   77333.284780, 77342.441825, 77351.598976, 77360.756232, 77369.913593, 77379.071060, 77388.228632, 77397.386310, 
   77406.544093, 77415.701982, 77424.859976, 77434.018075, 77443.176279, 77452.334589, 77461.493005, 77470.651525, 
   77479.810151, 77488.968883, 77498.127719, 77507.286661, 77516.445708, 77525.604860, 77534.764118, 77543.923481, 
   77553.082949, 77562.242522, 77571.402200, 77580.561984, 77589.721873, 77598.881867, 77608.041966, 77617.202170, 
   77626.362480, 77635.522894, 77644.683414, 77653.844039, 77663.004769, 77672.165604, 77681.326544, 77690.487589, 
   77699.648739, 77708.809994, 77717.971354, 77727.132819, 77736.294390, 77745.456065, 77754.617845, 77763.779730, 
   77772.941720, 77782.103815, 77791.266015, 77800.428320, 77809.590730, 77818.753245, 77827.915864, 77837.078589, 
   77846.241418, 77855.404353, 77864.567392, 77873.730536, 77882.893784, 77892.057138, 77901.220596, 77910.384160, 
   77919.547828, 77928.711600, 77937.875478, 77947.039460, 77956.203547, 77965.367739, 77974.532035, 77983.696436, 
   77992.860942, 78002.025553, 78011.190268, 78020.355088, 78029.520012, 78038.685041, 78047.850175, 78057.015414, 
   78066.180757, 78075.346204, 78084.511756, 78093.677413, 78102.843174, 78112.009040, 78121.175011, 78130.341086, 
   78139.507265, 78148.673549, 78157.839938, 78167.006431, 78176.173028, 78185.339730, 78194.506536, 78203.673447, 
   78212.840462, 78222.007582, 78231.174806, 78240.342135, 78249.509568, 78258.677105, 78267.844746, 78277.012492, 
   78286.180343, 78295.348297, 78304.516356, 78313.684520, 78322.852787, 78332.021159, 78341.189635, 78350.358216, 
   78359.526900, 78368.695689, 78377.864583, 78387.033580, 78396.202682, 78405.371887, 78414.541197, 78423.710612, 
   78432.880130, 78442.049753, 78451.219479, 78460.389310, 78469.559245, 78478.729284, 78487.899427, 78497.069675, 
   78506.240026, 78515.410481, 78524.581041, 78533.751704, 78542.922472, 78552.093344, 78561.264319, 78570.435399, 
   78579.606583, 78588.777870, 78597.949262, 78607.120757, 78616.292357, 78625.464060, 78634.635868, 78643.807779, 
   78652.979794, 78662.151914, 78671.324137, 78680.496464, 78689.668894, 78698.841429, 78708.014068, 78717.186810, 
   78726.359656, 78735.532606, 78744.705660, 78753.878817, 78763.052079, 78772.225444, 78781.398913, 78790.572485, 
   78799.746162, 78808.919942, 78818.093826, 78827.267813, 78836.441905, 78845.616100, 78854.790398, 78863.964800, 
   78873.139306, 78882.313916, 78891.488629, 78900.663446, 78909.838366, 78919.013390, 78928.188518, 78937.363749, 
   78946.539084, 78955.714522, 78964.890064, 78974.065710, 78983.241458, 78992.417311, 79001.593267, 79010.769326, 
   79019.945489, 79029.121756, 79038.298125, 79047.474599, 79056.651175, 79065.827856, 79075.004639, 79084.181526, 
   79093.358517, 79102.535610, 79111.712808, 79120.890108, 79130.067512, 79139.245019, 79148.422630, 79157.600344, 
   79166.778161, 79175.956081, 79185.134105, 79194.312232, 79203.490462, 79212.668796, 79221.847233, 79231.025773, 
   79240.204416, 79249.383163, 79258.562012, 79267.740965, 79276.920021, 79286.099181, 79295.278443, 79304.457809, 
   79313.637277, 79322.816849, 79331.996524, 79341.176302, 79350.356183, 79359.536168, 79368.716255, 79377.896445, 
   79387.076739, 79396.257135, 79405.437635, 79414.618237, 79423.798943, 79432.979751, 79442.160663, 79451.341678, 
   79460.522795, 79469.704016, 79478.885339, 79488.066765, 79497.248295, 79506.429927, 79515.611662, 79524.793500, 
   79533.975441, 79543.157485, 79552.339631, 79561.521881, 79570.704233, 79579.886688, 79589.069246, 79598.251907, 
   79607.434671, 79616.617537, 79625.800506, 79634.983578, 79644.166753, 79653.350030, 79662.533410, 79671.716893, 
   79680.900479, 79690.084167, 79699.267958, 79708.451852, 79717.635849, 79726.819948, 79736.004149, 79745.188454, 
   79754.372861, 79763.557370, 79772.741982, 79781.926697, 79791.111515, 79800.296435, 79809.481457, 79818.666582, 
   79827.851810, 79837.037140, 79846.222573, 79855.408108, 79864.593746, 79873.779486, 79882.965329, 79892.151274, 
   79901.337322, 79910.523472, 79919.709725, 79928.896080, 79938.082537, 79947.269097, 79956.455759, 79965.642524, 
   79974.829391, 79984.016360, 79993.203432, 80002.390606, 80011.577882, 80020.765261, 80029.952742, 80039.140326, 
   80048.328011, 80057.515799, 80066.703690, 80075.891682, 80085.079777, 80094.267974, 80103.456273, 80112.644675, 
   80121.833178, 80131.021784, 80140.210492, 80149.399302, 80158.588215, 80167.777229, 80176.966346, 80186.155565, 
   80195.344886, 80204.534309, 80213.723834, 80222.913462, 80232.103191, 80241.293023, 80250.482956, 80259.672992, 
   80268.863130, 80278.053369, 80287.243711, 80296.434155, 80305.624700, 80314.815348, 80324.006098, 80333.196950, 
   80342.387903, 80351.578959, 80360.770116, 80369.961376, 80379.152737, 80388.344201, 80397.535766, 80406.727433, 
   80415.919202, 80425.111073, 80434.303045, 80443.495120, 80452.687296, 80461.879575, 80471.071955, 80480.264437, 
   80489.457020, 80498.649706, 80507.842493, 80517.035382, 80526.228373, 80535.421465, 80544.614659, 80553.807955, 
   80563.001353, 80572.194852, 80581.388453, 80590.582156, 80599.775960, 80608.969866, 80618.163874, 80627.357984, 
   80636.552195, 80645.746507, 80654.940921, 80664.135437, 80673.330055, 80682.524774, 80691.719594, 80700.914516, 
   80710.109540, 80719.304665, 80728.499892, 80737.695220, 80746.890650, 80756.086181, 80765.281814, 80774.477548, 
   80783.673384, 80792.869321, 80802.065360, 80811.261500, 80820.457741, 80829.654084, 80838.850528, 80848.047074, 
   80857.243721, 80866.440469, 80875.637319, 80884.834270, 80894.031323, 80903.228476, 80912.425732, 80921.623088, 
   80930.820546, 80940.018105, 80949.215765, 80958.413527, 80967.611390, 80976.809354, 80986.007419, 80995.205586, 
   81004.403853, 81013.602222, 81022.800693, 81031.999264, 81041.197937, 81050.396710, 81059.595585, 81068.794561, 
   81077.993638, 81087.192817, 81096.392096, 81105.591477, 81114.790958, 81123.990541, 81133.190225, 81142.390010, 
   81151.589896, 81160.789883, 81169.989971, 81179.190160, 81188.390450, 81197.590841, 81206.791333, 81215.991926, 
   81225.192620, 81234.393415, 81243.594311, 81252.795307, 81261.996405, 81271.197604, 81280.398904, 81289.600304, 
   81298.801805, 81308.003408, 81317.205111, 81326.406915, 81335.608820, 81344.810826, 81354.012932, 81363.215140, 
   81372.417448, 81381.619857, 81390.822367, 81400.024977, 81409.227689, 81418.430501, 81427.633413, 81436.836427, 
   81446.039541, 81455.242756, 81464.446072, 81473.649489, 81482.853006, 81492.056624, 81501.260342, 81510.464161, 
   81519.668081, 81528.872102, 81538.076223, 81547.280444, 81556.484767, 81565.689189, 81574.893713, 81584.098337, 
   81593.303062, 81602.507887, 81611.712813, 81620.917839, 81630.122966, 81639.328193, 81648.533521, 81657.738949, 
   81666.944478, 81676.150107, 81685.355837, 81694.561667, 81703.767598, 81712.973629, 81722.179761, 81731.385992, 
   81740.592325, 81749.798758, 81759.005291, 81768.211924, 81777.418658, 81786.625492, 81795.832427, 81805.039462, 
   81814.246597, 81823.453833, 81832.661168, 81841.868605, 81851.076141, 81860.283778, 81869.491515, 81878.699352, 
   81887.907290, 81897.115327, 81906.323465, 81915.531703, 81924.740042, 81933.948480, 81943.157019, 81952.365658, 
   81961.574397, 81970.783236, 81979.992176, 81989.201215, 81998.410355, 82007.619595, 82016.828935, 82026.038374, 
   82035.247915, 82044.457555, 82053.667295, 82062.877135, 82072.087075, 82081.297116, 82090.507256, 82099.717496, 
   82108.927837 
  }; 

/* Nat log values for 0.1, 0.2, 0.3, etc. */ 
/* Used instead of repeatedly calculating them. */
double log_win10[] = 
{
   0.0, -2.30258509, -1.60943791, -1.203982804, -0.91629073, -0.6931478, -0.510825623, -0.356674944,
   -0.22314355, -0.105360515, 0.0
}; 




const int kProtAlphabet = 2;   /**< identifies protein alphabet (FIXME: needed?). */



/** Information about the alphabet used by seg.
 *  For proteins this version of seg uses ncbistdaa,
 *  This keeps track of those.
 */
typedef struct Alpha
  {
   Int4 alphabet;              /**< which alphabet, kProtAlphabet for proteins. */
   Int4 alphasize;             /**< size of above alphabet. */
   double lnalphasize;         /**< nat. log of size of above alphabet. */
   Int4* alphaindex;           /**< value in ncbistdaa. */
   unsigned char* alphaflag;   /**< array of bools to indicate that letter is (not) valid?? */
  } Alpha;


/** General sequence information */
typedef struct SSequence
  {
   struct SSequence* parent;   /**< SSequence window that encompasses the current one */
   char* seq;                  /**< sequence in ncbistdaa. */
   Alpha* palpha;              /**< alphabet information */
   Int4 start;                 /**< starting offset to seg. */
   Int4 length;                /**< Length of sequence to be segged. */
   Int4 bogus;                 /**< tracks number of non-allowed residues (e.g., X) */
   Boolean punctuation;        /**< FIXME: always FALSE, never set to TRUE? */
   Int4* composition;          /**< totals number of each type of residue */
   Int4* state;                /**< "state vector as described on pg. 151 of Wootton and Federhen
                                  (Comput. Chem. 17, 149 (1993)).  Tracks number of each residue, 
                                  like composition, but without gaps in array. */
   double entropy;             /**< entropy of what this array refers to. */
} SSequence;

/** List of sequence segments (hits) */
typedef struct SSeg
  {
   int begin;          /**< beginning of segment (hit). */
   int end;            /**< end of segment (hit). */
   struct SSeg *next;  /**< next object in linked list */
  } SSeg;

/** Initializes SSequence structure */
static SSequence* 
s_SSequenceNew(void)
{
   SSequence* seq;

   seq = (SSequence*) calloc(1, sizeof(SSequence));
   if (seq==NULL)
     {
      /* raise error flag and etc. */
      return(seq);
     }

   seq->parent = (SSequence*) NULL;
   seq->seq = (char*) NULL;
   seq->palpha = (Alpha*) NULL;
   seq->start = seq->length = 0;
   seq->bogus = seq->punctuation = FALSE;
   seq->composition = seq->state = (Int4*) NULL;
   seq->entropy = (double) 0.0;

   return(seq);
}

/*------------------------------------------------------------(AlphaFree)---*/

/** Frees the Alpha structure and underlying structures.
 * @param palpha the object to be freed [in]
 */
static void 
s_AlphaFree (Alpha* palpha)

  {
   if (!palpha) return;

   sfree (palpha->alphaindex);
   sfree (palpha->alphaflag);
   sfree (palpha);

   return;
 }

/*--------------------------------------------------------------(SSequenceFree)---*/

/** Frees the SSequence structure and the underlying structure
 * @param seq the object to be freed [in]
 */
static void 
s_SSequenceFree(SSequence* seq)
{
   if (seq==NULL) return;

   sfree(seq->seq);
   s_AlphaFree(seq->palpha);
   sfree(seq->composition);
   sfree(seq->state);
   sfree(seq);
   return;
}

/*--------------------------------------------------------------(SSegFree)---*/

/** Frees the SSeg structure
 * @param seg the object to be freed [in]
 */
static void 
s_SegFree(SSeg* seg)
{
   SSeg* nextseg;

   while (seg)
     {
      nextseg = seg->next;
      sfree(seg);
      seg = nextseg;
     }

   return;
}

/*--------------------------------------------------------------(hasdash)---*/

/** Checks if sequence contains a dash.
 * @param win SSequence structure for a piece of a sequence [in]
 * @return TRUE if dash is found in the sequence, otherwise FALSE [in]
 */
static Boolean 
s_HasDash(SSequence* win)
{
	char	*seq, *seqmax;

	seq = win->seq;
	seqmax = seq + win->length;

	while (seq < seqmax) {
		if (*seq++ == '-')
			return TRUE;
	}
	return FALSE;
}

/*------------------------------------------------------------(state_cmp)---*/

/** State comparison function */
static int 
s_StateCmp(const void* s1, const void* s2)
{
	int *np1, *np2;

	np1 = (int *) s1;
	np2 = (int *) s2;

	return (*np2 - *np1);
}

/*---------------------------------------------------------------(compon)---*/

/** Calculates sequence composition array values. 
 * @param win the object to be analyzed [in]
 */
static void 
s_CompOn(SSequence* win)

{
	Int4* comp;
	Int4 letter;
	char* seq,* seqmax;
        Int4* alphaindex;
        unsigned char* alphaflag;
        Int4 alphasize;

        alphasize = win->palpha->alphasize;
        alphaindex = win->palpha->alphaindex;
        alphaflag = win->palpha->alphaflag;

	win->composition = comp =
                (Int4*) calloc(alphasize, sizeof(Int4));
	seq = win->seq;
	seqmax = seq + win->length;

	while (seq < seqmax) {
		letter = *seq++;
		if (!alphaflag[letter])
			comp[alphaindex[letter]]++;
                else 
                        win->bogus++;
	}

	return;
}

/*--------------------------------------------------------------(stateon)---*/

/** Calculates state array values 
 * @param win the object to be analyzed [in]
 */
static void 
s_StateOn(SSequence* win)

{
	Int4 letter, nel, c;
        Int4 alphasize;

        alphasize = win->palpha->alphasize;

	if (win->composition == NULL)
		s_CompOn(win);

	win->state = (Int4*) calloc((alphasize+1), sizeof(win->state[0]));

	for (letter = nel = 0; letter < alphasize; ++letter) {
		if ((c = win->composition[letter]) == 0)
			continue;
		win->state[nel++] = c;
	}
	for (letter = nel; letter < alphasize+1; ++letter)
		win->state[letter] = 0;

	qsort(win->state, nel, sizeof(win->state[0]), s_StateCmp);

	return;
}

/*--------------------------------------------------------------(s_OpenWin)---*/

/** Initializes an SSequence structure for part of sequence contained in a
 * window.
 * @param parent Parent (whole) sequence [in]
 * @param start Window start in parent [in]
 * @param length Window length in parent [in]
 * @return Pointer to the resulting SSequence structure.
 */
static SSequence* 
s_OpenWin(SSequence* parent, Int4 start, Int4 length)
{
   SSequence* win;

   if (start<0 || length<0 || start+length>parent->length)
     {
      return((SSequence*) NULL);
     }

      win = (SSequence*) calloc(1, sizeof(SSequence));

/*---                                          ---[set links, up and down]---*/

      win->parent = parent;
      win->palpha = parent->palpha;

/*---                          ---[install the local copy of the sequence]---*/

      win->start = start;
      win->length = length;
	win->seq = parent->seq + start;

        win->bogus = 0;
	win->punctuation = FALSE;

	win->entropy = -2.;
	win->state = (Int4*) NULL;
	win->composition = (Int4*) NULL;

	s_StateOn(win);

	return win;
}

/*--------------------------------------------------------------(s_Entropy)---*/

/** Calculates entropy of an integer array 
 * @param sv array to be analyzed [in]
 * @return the entropy
 */
static double 
s_Entropy(Int4* sv)
{
   double ent;
   Int4 i, total;

   total = 0;
   for (i=0; sv[i]!=0; i++)
     {
      total += sv[i];
     }
   if (total==0) return(0.);

   ent = 0.0;
   if (total == 10)
   { /* Use precomputed table. */
   	for (i=0; sv[i]!=0; i++)
     	{
      		ent += ((double)sv[i])*log_win10[sv[i]]/NCBIMATH_LN2;
     	}
	
   }
   else
   {
   	for (i=0; sv[i]!=0; i++)
     	{
      		ent += ((double)sv[i])*log(((double)sv[i])/(double)total)/NCBIMATH_LN2;
     	}
   }
   ent = fabs(ent/(double)total);
   return(ent);
}

/*----------------------------------------------------------(decrementsv)---*/



/** Decrements the value in the Int4 array for every element that matches class.
 * There is also another criteria that the next element must have a vlaue
 * less than class.
 * @param sv the array to be examined and decremented [in|out]
 * @param class criteria for decrementing an element [in]
 */
static void 
s_DecrementSV(Int4* sv, Int4 class)

{
	Int4	svi;

	while ((svi = *sv++) != 0) {
		if (svi == class && *sv < class) {
			sv[-1] = svi - 1;
			break;
		}
	}
}

/** Increments the value in the Int4 array for every element that matches class.
 * @param sv the array to be examined and incremented [in|out]
 * @param class criteria for incrementing an element [in]
 */
static void 
s_IncrementSV(Int4* sv, Int4 class)

{
	for (;;) {
		if (*sv++ == class) {
			sv[-1]++;
			break;
		}
	}
}

/** Moves over the "window" of sequence seg is currently working on.
 *
 * @param win object to be operated on [in]
 * @return FALSE if nothing done, TRUE otherwise
 */

static Boolean 
s_ShiftWin1(SSequence* win)
{
	Int4 j, length;
	Int4* comp;
        Int4* alphaindex;
        unsigned char* alphaflag;

	length = win->length;
	comp = win->composition;
        alphaindex = win->palpha->alphaindex;
        alphaflag = win->palpha->alphaflag;

	if ((++win->start + length) > win->parent->length) {
		--win->start;
		return FALSE;
	}

	if (!alphaflag[j = win->seq[0]])
		s_DecrementSV(win->state, comp[alphaindex[j]]--);
        else win->bogus--;

	j = win->seq[length];
	++win->seq;

	if (!alphaflag[j])
		s_IncrementSV(win->state, comp[alphaindex[j]]++);
        else win->bogus++;

	if (win->entropy > -2.)
		win->entropy = s_Entropy(win->state);

	return TRUE;
}

/*-------------------------------------------------------------(closewin)---*/

/** Frees the SSequence structure corresponding to a sequence window 
 * Does not free palpha like s_SSequenceFree (two functions needed?).
 * @param win object to be freed
 */
static void 
s_CloseWin(SSequence* win)
{
   if (win==NULL) return;

   if (win->state!=NULL)       sfree(win->state);
   if (win->composition!=NULL) sfree(win->composition);

   sfree(win);
   return;
}

/*----------------------------------------------------------------(enton)---*/

/** Calculates entropy of a sequence window 
 * @param win object to be analyzed [in]
 */
static void 
s_EntropyOn(SSequence* win)

  {
   if (win->state==NULL) {s_StateOn(win);}

   win->entropy = s_Entropy(win->state);

   return;
  }

/** Calculates entropy for a given sequence and window
 * 
 * @param seq Sequence to examine [in]
 * @param window amount of sequence to examine at once [in]
 * @param maxbogus limit on non-allowed (e.g., X) characters [in]
 * @return calculated entropy
 */
static double* 
s_SeqEntropy(SSequence* seq, Int4 window, Int4 maxbogus)
{
   SSequence* win;
   double* H;
   Int4 i, first, last, downset, upset;

   downset = (window+1)/2 - 1;
   upset = window - downset;

   if (window>seq->length)
     {
      return((double*) NULL);
     }

   H = (double*) calloc(seq->length, sizeof(double));

   for (i=0; i<seq->length; i++)
     {
      H[i] = -1.;
     }

   win = s_OpenWin(seq, 0, window);
   s_EntropyOn(win);

   first = downset;
   last = seq->length - upset;

   for (i=first; i<=last; i++)
     {
      if (seq->punctuation && s_HasDash(win))
        {
         H[i] = -1.;
         s_ShiftWin1(win);
         continue;
        }
      if (win->bogus > maxbogus)
        {
         H[i] = -1.;
         s_ShiftWin1(win);
         continue;
        }
      H[i] = win->entropy;
      s_ShiftWin1(win);
     }

   s_CloseWin(win);
   return(H);
}

/*---------------------------------------------------------------(s_FindLow)---*/

/** Finds the first element above hicut, looks from i to limit.
 * @param i first element to check [in]
 * @param limit last element to check [in]
 * @param hicut value to check for [in]
 * @param H the array to check.
 * @return index of last element with value below hicut
 */

static Int4 s_FindLow(Int4 i, Int4 limit, double hicut, double* H)

  {
   Int4 j;

   for (j=i; j>=limit; j--)
     {
      if (H[j]==-1.0) break;
      if (H[j]>hicut) break;
     }

   return(j+1);
  }

/*---------------------------------------------------------------(s_FindHigh)---*/

/** Finds the last element below hicut, looks from i to limit.
 * @param i first element to check [in]
 * @param limit last element to check [in]
 * @param hicut value to check for [in]
 * @param H the array to check.
 * @return index of last element with value below hicut
 */
static Int4 s_FindHigh(Int4 i, Int4 limit, double hicut, double* H)

  {
   Int4 j;

   for (j=i; j<=limit; j++)
     {
      if (H[j]==-1.0) break;
      if (H[j]>hicut) break;
     }

   return(j-1);
  }

/** calculate log(n!) using either tabulated data or Sterling's formula
 * @param n [in]
 * @return log(n!)
 */
static double
s_lnfact(Int4 n) {
  if (n < sizeof(lnfact)/sizeof(*lnfact))
     return lnfact[n];
  else return ((n+0.5)*log(n) - n + 0.9189385332);
}

/** calculate "K2" entropy per equation 3 of Wootton and Federhen
 * (Comput. Chem. 17, 149 (1993).
 * @param sv state vector [in]
 * @param window_length length of window being examined
 * @return K2
 */ 
static double 
s_LnPerm(const Int4* sv, Int4 window_length)

  {
   double ans;
   Int4 i;

   ans = s_lnfact(window_length);

   for (i=0; sv[i]!=0; i++) 
     {
      ans -= s_lnfact(sv[i]);
     }

   return(ans);
  }


/** Calculates natural log of "Farben" which is the number of compositions
 * in any complexity state.  See equation 1 of Wootton and Federhen
 * (Comput. Chem. 17, 149 (1993)).
 * @param sv state vector [in]
 * @param alphasize total letters in alphabet [in]
 * @return number of compositions as described above
 */
static double 
s_LnAss(const Int4* sv, Int4 alphasize)

{
	double	ans;
	int	svi, svim1;
	int	class, total;
	int    i;

	ans = lnfact[alphasize];
	if (sv[0] == 0)
		return ans;

	total = alphasize;
	class = 1;
	svi = *sv;
	svim1 = sv[0];
	for (i=0;; svim1 = svi) {
	        if (++i==alphasize) {
		        ans -= s_lnfact(class);
			break;
		      }
		else if ((svi = *++sv) == svim1) {
			class++;
			continue;
		}
		else {
			total -= class;
			ans -= s_lnfact(class);
			if (svi == 0) {
				ans -= s_lnfact(total);
				break;
			}
			else {
				class = 1;
				continue;
			}
		}
	}

	return ans;
}


/** This function calculates the natural log of the value P sub 0 from 
 * equation 3 of Wootton and Federhen (Methods Enzymol. 1996;266:554-71).
 * @param sv state vector [in]
 * @param total window length of area examined [in]
 * @param palpha structure for alphabet information [in]
 * @return log of P sub 0 as mentioned above
 */
static double 
s_GetProb(const Int4* sv, Int4 total, const Alpha* palpha)

  {
   double ans, ans1, ans2 = 0, totseq;

   totseq = ((double) total) * palpha->lnalphasize;

   ans1 = s_LnAss(sv, palpha->alphasize);
   if (ans1 > -100000.0 && sv[0] != INT4_MIN)
   {
	ans2 = s_LnPerm(sv, total);
   }
   else
   {
#ifdef ERR_POST_EX_DEFINED
        ErrPostEx (SEV_ERROR, 0, 0, "Illegal value returned by s_LnAss");
#endif
   }
   ans = ans1 + ans2 - totseq;

   return ans;
  }

/** Trims view of sequence so as to minimize the probability returned by s_GetProb
 * @param seq the part of sequence to be examined [in]
 * @param leftend left-most end of sequence [in|out]
 * @param rightend right-most end of sequence [in|out]
 * @param sparamsp the SEG parameters [in]
 */
static Int2 
s_Trim(SSequence* seq, Int4* leftend, Int4* rightend, const SegParameters* sparamsp)

{
   double prob, minprob;
   Int4 len;
   Int4 lend, rend;
   Int4 minlen;
   Int4 maxtrim;
   Int2 status = 0;

   lend = 0;
   rend = seq->length - 1;
   minlen = 1;
   maxtrim = sparamsp->maxtrim;
   if ((seq->length-maxtrim)>minlen) 
        minlen = seq->length-maxtrim;

   minprob = 1.;
   for (len=seq->length; len>minlen; len--)
   {
      Boolean shift = TRUE;
      Int4 i = 0;
      SSequence* win = s_OpenWin(seq, 0, len);

      while (shift)
      {
         prob = s_GetProb(win->state, len, win->palpha);
         if (prob<minprob)
         {
            minprob = prob;
            lend = i;
            rend = len + i - 1;
         }
         shift = s_ShiftWin1(win);
         i++;
      }
      s_CloseWin(win);
   }

   *leftend = *leftend + lend;
   *rightend = *rightend - (seq->length - rend - 1);

   s_CloseWin(seq);
   return status;
}

/** High-level function to perform calculations to find 
 * low-complexity segments.  Thi function calls itself 
 * recursively
 * 
 * @param seq sequence to be checked [in]
 * @param sparamsp seg parameters [in]
 * @param segs low-complexity segments found [out]
 * @param offset offset of sequence passed in [in]
 */
static Int2 
s_SegSeq(SSequence* seq, SegParameters* sparamsp, SSeg **segs,
                   Int4 offset)
{
   SSeg* seg = (SSeg*) NULL;
   Int4 window;
   double locut, hicut;
   Int4 downset, upset;
   Int4 first, last, lowlim;
   Int4 i;
   Int4 leftend, rightend;
   double* H;
   Int2 status = 0;

   if (sparamsp->window<=0) return status;
   if (sparamsp->locut<=0.) sparamsp->locut = 0.;
   if (sparamsp->hicut<=0.) sparamsp->hicut = 0.;

   window = sparamsp->window;
   locut = sparamsp->locut;
   hicut = sparamsp->hicut;
   downset = (window+1)/2 - 1;
   upset = window - downset;
      
   H = s_SeqEntropy(seq, window, sparamsp->maxbogus);

   if (H == NULL) 
      return status;

   first = downset;
   last = seq->length - upset;
   lowlim = first;

   for (i=first; i<=last; i++)
   {
      if (H[i] <= locut && H[i] != -1.0)
        {
         Int4 loi = s_FindLow(i, lowlim, hicut, H);
         Int4 hii = s_FindHigh(i, last, hicut, H);
         SSequence* temp_seq = NULL;

         leftend = loi - downset;
         rightend = hii + upset - 1;

         temp_seq = s_OpenWin(seq, leftend, rightend-leftend+1);
         status = s_Trim(temp_seq, &leftend, &rightend, sparamsp);

         if (status < 0) {
             s_CloseWin(temp_seq);
             break;
         }

         if (i+upset-1<leftend)   /* check for trigger window in left trim */
         {
            Int4 lend = loi - downset;
            Int4 rend = leftend - 1;

            SSequence* leftseq = s_OpenWin(seq, lend, rend-lend+1);
            SSeg *leftsegs = (SSeg*) NULL;
            status = s_SegSeq(leftseq, sparamsp, &leftsegs, offset+lend);
            if (status < 0)
	    {
   		sfree(H);
                return status;
	    }

            /* prepend here, order will be restored in s_SegToSeqLoc */
            if (leftsegs!=NULL)
            {
               leftsegs->next = *segs;
               *segs = leftsegs;
            }
            s_CloseWin(leftseq);

         }

         seg = (SSeg*) calloc(1, sizeof(SSeg));
         seg->begin = leftend + offset;
         seg->end = rightend + offset;
         seg->next = *segs;
         *segs = seg;
         i = MIN(hii, rightend+downset);
         lowlim = i + 1;
        }
   }
   sfree(H);
   return status;
}

/*------------------------------------------------------------(mergesegs)---*/
/** merge together overlapping segments, 
 * hilenmin also does something, but we need to ask Scott Federhen what?
 * @param seq information about sequence [in]
 * @param segs segment information [in]
*/
static void 
s_MergeSegs(SSequence* seq, SSeg* segs)
{
   SSeg* seg,* nextseg;
   Int4 hilenmin;              /* hilenmin yet unset */

   hilenmin = 0;               /* hilenmin - temporary default */

   if (segs==NULL) return;

   if (seq->length -1 - segs->end < hilenmin) 
       segs->end = seq->length -1;

   seg = segs;
   nextseg = seg->next;

   while (nextseg!=NULL) {
      if (seg->begin - nextseg->end - 1 < hilenmin) {
         if (seg->end < nextseg->end) seg->end = nextseg->end;
         if (seg->begin > nextseg->begin) seg->begin = nextseg->begin;
         seg->next = nextseg->next;
         sfree(nextseg);
      } else {
         seg = nextseg;
      }
      nextseg = seg->next;
   }

   if (seg->begin < hilenmin) seg->begin = 0;

   return;
}

/** Converts the internal representation used by seg to that used by BLAST
 *
 * @param segs internal representation [in]
 * @param offset fixed value to add to offsets [in]
 * @param seg_locs the new BLAST specific representation [out]
 * @return 0 on success, -1 if memory allocation failed.
 */
static Int2 
s_SegsToBlastSeqLoc(SSeg* segs, Int4 offset, BlastSeqLoc** seg_locs)
{
   for ( ; segs; segs = segs->next) {
      BlastSeqLoc *loc = (BlastSeqLoc*) calloc(1, sizeof(BlastSeqLoc));
      loc->ssr = (SSeqRange*) calloc(1,sizeof(SSeqRange));
      loc->ssr->left = segs->begin + offset;
      loc->ssr->right = segs->end  + offset;
      loc->next = *seg_locs;
      *seg_locs = loc;
   }
   /* If not all segs have been processed, it means that memory allocation 
      failed, hence return error status. */
   if (segs) {
       *seg_locs = BlastSeqLocFree(*seg_locs);
       return -1;
   }

   return 0;
}

/** Creats the Alphabet structure for standard protein alphabet. 
 * @return pointer to the alphabet structure.
 */
static Alpha* 
s_AA20alphaStd (void)
{
   Alpha* palpha;
   Int4* alphaindex;
   unsigned char* alphaflag;
   Uint1 c, i;
   const int kCharSet = 128;
   const double kLn20 = 2.9957322735539909;

   palpha = (Alpha*) calloc(1, sizeof(Alpha));

   palpha->alphabet = kProtAlphabet;
   palpha->alphasize = 20;
   palpha->lnalphasize = kLn20;

   alphaindex = (Int4*) calloc(kCharSet , sizeof(Int4));
   alphaflag = (unsigned char*) calloc(kCharSet , sizeof(unsigned char));

   for (c=0, i=0; c<kCharSet; c++)
     {
        if (c == 1 || (c >= 3 && c <= 20) || c == 22) {
           alphaflag[c] = FALSE; 
           alphaindex[c] = i; 
           ++i;
        } else {
           alphaflag[c] = TRUE; alphaindex[c] = 20;
        }
     }

   palpha->alphaindex = alphaindex;
   palpha->alphaflag = alphaflag;

   return (palpha);
}

/* Comments in blast_seg.h */
SegParameters* SegParametersNewAa (void)
{
   SegParameters* sparamsp;

   sparamsp = (SegParameters*) calloc(1, sizeof(SegParameters));

   sparamsp->window = kSegWindow;
   sparamsp->locut = kSegLocut;
   sparamsp->hicut = kSegHicut;
   sparamsp->period = 1;
   sparamsp->hilenmin = 0;
   sparamsp->overlaps = FALSE;
   sparamsp->maxtrim = 50;
   sparamsp->maxbogus = 2;

   return (sparamsp);
}

/** Checks SeqParameter struct for proteins, sets default values if not set. 
 * @param sparamsp parameters to check [in]
 */
static void 
s_SegParametersCheck (SegParameters* sparamsp)
{
   if (!sparamsp) return;

   if (sparamsp->window <= 0) sparamsp->window = 12;

   if (sparamsp->locut < 0.0) sparamsp->locut = 0.0;

   if (sparamsp->hicut < 0.0) sparamsp->hicut = 0.0;

   if (sparamsp->locut > sparamsp->hicut)
       sparamsp->hicut = sparamsp->locut;

   if (sparamsp->maxbogus < 0)
       sparamsp->maxbogus = 0;
   if (sparamsp->maxbogus > sparamsp->window)
       sparamsp->maxbogus = sparamsp->window;

   if (sparamsp->period <= 0) sparamsp->period = 1;
   if (sparamsp->maxtrim < 0) sparamsp->maxtrim = 0;

   return;
}

/* Comments in blast_seg.h */
void SegParametersFree(SegParameters* sparamsp)
{
   if (!sparamsp) 
      return;
   sfree(sparamsp);
   return;
}

/* comments in blast_seg.h */
Int2 SeqBufferSeg (Uint1* sequence, Int4 length, Int4 offset,
                     SegParameters* sparamsp, BlastSeqLoc** seg_locs)
{
   SSequence* seqwin;
   SSeg* segs;
   Boolean params_allocated = FALSE;
   Int2 status = 0;
   
   s_SegParametersCheck (sparamsp);
   
   /* check seg parameters */
   if (!sparamsp) {
      params_allocated = TRUE;
      sparamsp = SegParametersNewAa();
      s_SegParametersCheck (sparamsp);
      if (!sparamsp)
         return -1;
   }

   /* make an old-style genwin sequence window object */
    
   seqwin = s_SSequenceNew();
   seqwin->seq = (char*) sequence;
   seqwin->length = length;
   seqwin->palpha = s_AA20alphaStd();

   *seg_locs = NULL;
   
   /* seg the sequence */
   segs = (SSeg*) NULL;
   status = s_SegSeq (seqwin, sparamsp, &segs, 0);
   if (status < 0)
   {
     seqwin->seq = NULL;
     s_SSequenceFree (seqwin);
     return status;
   }

   /* merge the segment if desired. */
   if (sparamsp->overlaps)
      s_MergeSegs(seqwin, segs);

   /* convert segs to seqlocs */
   s_SegsToBlastSeqLoc(segs, offset, seg_locs);   
   
   /* clean up & return */
   seqwin->seq = NULL;
   s_SSequenceFree (seqwin);
   s_SegFree (segs);

   if(params_allocated)
       SegParametersFree(sparamsp);
   
   return 0;
}

